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

Python API调用异常:获取Access Token后POST请求提示无效

问题:POST请求携带access_token返回"Invalid access token"错误

我正在处理一道面试编程题,需使用Python将源URL中的JSON数据发送至目标API。根据企业提供的文档,发送请求需携带access-token与API-version请求头。我已通过GET请求携带凭证成功获取access_token,但使用该token发起POST请求时,却收到{"message":"Invalid access token"}错误。

获取token的代码

Base_URL = "i can't show the URL, but imagine there is a URL here"

client_ID = "abc"
client_SECRET = "123"
api_VERSION  = "v3"
grant_TYPE = "client_credentials"

headers = {
    'Client-Id': client_ID,
    'Client-Secret': client_SECRET,
    'Grant-Type':grant_TYPE,
    'Api-Version':api_VERSION
}

request = requests.get(Base_URL, headers=headers)
token_info = request.json()
token = token_info.get('access_token')
print(token)

POST请求代码

post_URL = "Nope can't show the URL"

headers = {
    'Authorization':f'bearer {token}',
    'Api-Version':api_VERSION,
    'Content-Type': "application/json"
}

for user in user_array:
    request = requests.post(post_URL, headers=headers, json=json.dumps(user))
print(request.text)

可能的错误点及修复方案

  • Authorization头大小写错误:API规范中Bearer的首字母必须大写,你当前写的是bearer,很多服务对这个字段大小写敏感,修改为:
    'Authorization':f'Bearer {token}'
    
  • JSON参数传递错误:requests.post的json参数接受Python字典,无需手动用json.dumps()序列化。如果传入字符串,会导致请求体格式异常,部分API会因此拒绝请求,修复方式:
    request = requests.post(post_URL, headers=headers, json=user)
    
  • 循环请求变量覆盖:循环内每次POST都会覆盖request变量,最终仅能看到最后一次请求的响应。建议在循环内打印响应或保存结果,便于排查每一次请求的问题:
    for user in user_array:
        response = requests.post(post_URL, headers=headers, json=user)
        print(response.text)
    
  • token有效性验证:可以额外检查获取token请求的状态码和返回内容,确认token是否有效:
    print(request.status_code)  # 确认是否为200
    print(token_info)  # 查看是否包含expires_in等有效字段,确认token未过期
    

是否是面试题本身的问题?

大概率不是。这类错误几乎都是代码细节不符合API规范导致的,先排查上述几个常见问题,尤其是大小写和参数序列化的问题,这是接口请求中最容易踩的坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:00:06