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

Requests库使用问题:无法获取API数据寻求技术解决方案

排查requests获取API数据返回空响应的方案

以下是针对你遇到的response.text为空问题的具体排查步骤,结合你的环境(Python3.8.5 + Requests2.26.0)逐一验证:

  • 先确认响应基础信息
    先打印响应状态码和响应头,确认请求是否真的成功:

    response = requests.get('https://api.example.com/data')
    print(response.status_code)
    print(response.headers)
    

    如果状态码是204 No Content,说明API确实返回空;如果是3xx重定向码,可检查是否重定向到了空响应的地址;如果是200,再看Content-Length头,若值为0,可能API返回空,但你用cURL能拿到数据,这大概率是请求参数/头不一致导致。

  • 对齐cURL的请求头
    很多API会校验User-Agent、Accept等请求头,requests默认的头和cURL不同(比如requests的User-Agent是python-requests/2.26.0),直接复制cURL的请求头到代码中:
    比如你用cURL测试的命令是curl https://api.example.com/data,可以加上-v参数查看cURL发送的头,然后在requests中模拟:

    headers = {
        'User-Agent': 'curl/7.68.0',  # 替换成你cURL的实际User-Agent
        'Accept': '*/*'
    }
    response = requests.get('https://api.example.com/data', headers=headers)
    print(response.text)
    
  • 查看二进制原始响应
    response.text是经过requests自动编码后的字符串,如果编码识别错误,可能会显示为空。直接查看二进制内容:

    print(response.content)
    

    这里可能会看到实际的响应数据(比如非UTF-8编码的内容),或者API返回的错误提示(比如JSON格式的错误信息)。

  • 禁用自动重定向
    requests默认自动处理3xx重定向,若重定向后的地址返回空,会导致最终响应为空。试试禁用重定向:

    response = requests.get('https://api.example.com/data', allow_redirects=False)
    print(response.status_code)
    print(response.headers.get('Location'))
    

    如果状态码是3xx,手动访问Location地址确认是否能拿到数据。

  • 排除代理/SSL干扰
    本地代理可能导致请求异常,试试禁用代理:

    response = requests.get('https://api.example.com/data', proxies={"http": None, "https": None})
    

    另外,虽然没有报错,但SSL验证异常也可能导致响应异常,可临时关闭验证(仅用于排查,生产环境请勿使用):

    response = requests.get('https://api.example.com/data', verify=False)
    
  • 手动设置响应编码
    如果requests自动识别的编码不正确,会导致解码后为空字符串,手动指定编码再尝试:

    response = requests.get('https://api.example.com/data')
    response.encoding = 'utf-8'  # 替换为API实际使用的编码,比如gbk
    print(response.text)
    
  • 使用Session保持会话
    部分API需要Cookie或会话信息才能返回数据,cURL会自动处理Cookie,但单次requests请求不会保存会话,试试用Session:

    session = requests.Session()
    response = session.get('https://api.example.com/data')
    print(response.text)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:51:11