You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google App Engine部署Django DRF项目/packages/接口返回400错误求助

问题根因

你遇到的400错误是Google App Engine的前端代理直接拦截导致的:
根据HTTP RFC规范,GET请求本身不建议携带请求体,Google App Engine的边缘节点会直接拒绝所有携带请求体的GET请求,不会转发到你的Django服务。本地运行时没有这层代理拦截,所以接口可以正常工作。

修复方案

方案1(推荐):修改接口请求方法为POST

你的/packages/接口需要读取请求体传递的查询条件,本身更适合用POST方法实现,修改成本极低:

  1. 打开views.py,找到packages_middleware视图的装饰器,修改为:
# 原代码 @api_view(['GET'])
@api_view(['POST'])
def packages_middleware(request):
    # 其余逻辑不需要修改
  1. 客户端调用该接口时,将请求方法从GET改为POST即可。

方案2(不推荐):将查询条件改为URL参数传递

如果必须保留GET方法,你可以把原请求体里的数组参数编码后放到URL的Query参数中传递,视图里改为从request.GET读取参数,不需要读取request.data。这种方案需要同时修改接口逻辑和客户端调用逻辑,改造成本更高。

验证方法

修改完成后重新部署到GAE,用POST方法携带原请求体调用/packages/接口,即可正常获取返回结果。

内容的提问来源于stack exchange,提问作者benjicas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:36:04