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

为何在AWS Ubuntu服务器的Django应用中,requests.get获200响应却无内容?

我之前也碰到过几乎一模一样的情况,咱们一步步来排查和解决这个问题:

1. 先确认服务器内部的网络连通性

先抛开Django应用,直接在Ubuntu服务器上用curl测试你的DRF接口,模拟和代码里一样的请求:

curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" http://你的DRF接口完整地址
  • 如果curl也拿不到响应:那大概率是DRF接口本身的问题——比如接口服务没启动、绑定的是127.0.0.1而非0.0.0.0(导致同一服务器上的其他进程访问不到)、服务器内部防火墙挡住了接口端口,或者DRF所在的Django项目ALLOWED_HOSTS没配置允许当前服务器的IP/localhost。
  • 如果curl能正常拿到响应:那问题就出在Django应用的运行环境或者代码细节上。

2. 排查应用运行环境和shell环境的差异

你在./manage.py shell里能成功,说明shell用的是正确的Python环境,但部署的Django应用(比如用uWSGI、Gunicorn运行的)可能和shell环境不一样:

  • 检查虚拟环境:确认应用运行时用的Python路径和shell里的一致。可以在应用代码里加一句print(requests.__version__),再在shell里运行import requests; print(requests.__version__),对比版本是否相同——不同版本的requests可能存在行为差异。
  • 检查环境变量:应用运行时可能继承了系统的代理配置,而shell里没有。可以在代码里打印代理信息:print(requests.utils.get_environ_proxies("你的接口地址")),如果输出非空,说明有意外代理在干扰请求。

3. 核对请求细节的一致性

别小看细节,有时候就是差一点导致失败:

  • 确认请求URL完全正确:比如shell里用的是http://localhost:8000/api/,但应用里写成了http://127.0.0.1:8000/api(少了末尾的斜杠)?虽然多数情况下不影响,但某些DRF路由配置会对斜杠敏感。
  • 对比请求头:在shell里打印完整请求头:
    r = requests.get(url, verify=False, headers=headers)
    print(r.request.headers)
    
    然后在应用代码里也打印请求的headers,看看两者是否完全一致——有时候应用框架会自动添加额外的头,或者不小心覆盖了你设置的User-Agent。

4. 捕获具体错误信息,别只看“拿不到内容”

在应用代码里加异常捕获,把错误信息打出来,这是最直接的排查方式:

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
try:
    response = requests.get(url='你的接口地址', verify=False, headers=headers)
    print(f"请求状态码: {response.status_code}")
    print(f"响应内容: {response.text[:500]}")  # 打印前500字符看大概内容
except Exception as e:
    print(f"请求出错详情: {str(e)}")

同时别忘了查看DRF接口的日志,看看有没有接收到这个请求,以及返回了什么状态码(比如403、500这类隐性错误)。

5. 关于verify=False的小提醒

虽然你加了这个参数跳过证书验证,但如果DRF接口用的是HTTPS,服务器上的CA证书链异常也可能导致请求失败——可以临时把接口改成HTTP(如果允许的话)测试,排除证书相关的干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:38:28