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

使用Python Requests传递Token认证头仍返回403错误求助

问题描述

使用Python Requests库发送GET请求时,已在请求头中设置格式为Token {TOKEN}的Authorization字段,但始终收到403错误,错误信息为{'detail': 'Authentication credentials were not provided.'}。查看resp.request.headers输出,未发现自定义的Authorization头。尝试过直接传入HEADER字典(含/不含f-string)、使用.get方法等多种方式,均未解决问题,且确认TOKEN正确。

代码示例:

HEADER= {
    'Authorization': f'Token {TOKEN}'
}

resp= requests.request(
    "GET",
    url,
    headers=HEADER
)

resp.request.headers输出:

{'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', 'Connection': 'keep-alive'}

可能的原因及解决方法

  • 请求头被重定向丢弃:如果请求触发了重定向,Requests默认会在重定向时丢弃自定义Authorization头。可以添加allow_redirects=False参数禁止自动重定向,或者手动处理重定向流程,确保认证头在后续请求中被携带。
  • 请求头大小写敏感:部分服务对请求头字段的大小写有严格要求,尝试将Authorization改为小写authorization后再测试。
  • Requests版本存在bug:旧版本Requests可能存在头处理逻辑问题,执行pip install --upgrade requests升级到最新版本再尝试。
  • 会话对象覆盖自定义头:如果之前使用了requests.Session(),会话中保存的默认头可能覆盖了自定义设置。可以创建全新的会话对象,或者直接使用无会话的请求方式,确保自定义头优先级更高。
  • TOKEN拼接存在隐性问题:虽然确认TOKEN正确,但检查是否存在多余空格、换行符,或者Token与TOKEN之间是否缺少空格(比如写成Token{TOKEN})。可以直接硬编码一个已知有效的TOKEN测试,排除f-string拼接的问题。
  • 服务器要求额外请求头:部分服务会验证User-Agent等字段,尝试添加浏览器风格的User-Agent到请求头中,示例:
    HEADER= {
        'Authorization': f'Token {TOKEN}',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:40:18