Python Requests调用API返回401状态码的原因排查
为何这段Python代码会返回401请求状态码?
用户提供的Python代码如下:
import requests url = "https://localtonet.com/api/GetAuthTokens" def send_request(): headers = {'accept': 'application/json', 'Authorization': 'Bearer h<REDACTED>E'} resp = requests.get(url, headers=headers) return resp print (send_request())
官方文档给出的curl请求示例如下:
curl -X 'GET' \ 'https://localtonet.com/api/GetAuthTokens' \ -H 'accept: application/json' \ -H 'Authorization: Bearer h<REDACTED>E'
可能的排查方向
- 令牌有效性问题:确认
<REDACTED>替换后的真实令牌是否正确,有没有过期、被吊销,或者权限不足(比如该令牌没有访问此接口的权限) - 请求头细节差异:检查Python代码里的请求头键名、格式是否和curl完全一致,比如
Authorization头里Bearer和令牌之间的空格是否存在,accept的大小写是否符合服务要求(虽然大部分服务不区分,但部分严格的会校验) - User-Agent差异:curl和requests的默认User-Agent不同,部分服务会校验这个字段。可以尝试给Python请求添加和curl一致的User-Agent头,比如:
headers = { 'accept': 'application/json', 'Authorization': 'Bearer 你的真实令牌', 'User-Agent': 'curl/7.81.0' # 替换成你的curl版本 } - 网络或代理干扰:如果使用了代理,可能请求被篡改,导致令牌没有正确传递到服务器,尝试关闭代理后重试
- 令牌格式错误:确保令牌没有多余的字符(比如换行、空格),复制时有没有遗漏部分内容
内容的提问来源于stack exchange,提问作者loaded_dypper
相关产品推荐
相关产品推荐

