如何从Python HTTP请求的响应中提取authorization头的bearer token
从HTTP响应中提取Bearer Token的实现方法
Bearer Token通常有两种常见存放位置,对应不同的提取逻辑:
1. Token存放在响应头中(对应你当前的写法思路)
如果服务端将token放在Authorization响应头中,值的标准格式为Bearer 你的token字符串,以Python的requests库为例,提取代码如下:
# 从响应头中提取Authorization字段 auth_header = response.headers.get("Authorization") bearer_token = "" # 校验格式避免报错 if auth_header and auth_header.startswith("Bearer "): # 按空格分割取第二部分就是纯token bearer_token = auth_header.split(" ")[1]
2. Token存放在响应体中
这是更常见的场景,多数接口会把token放在JSON响应体里,字段名通常为access_token、token等:
# 先解析响应的JSON内容 resp_data = response.json() # 直接取对应字段的内容即可 bearer_token = resp_data.get("access_token") # 如果返回的字段值自带Bearer前缀,同样按上面的逻辑分割处理 if bearer_token and bearer_token.startswith("Bearer "): bearer_token = bearer_token.split(" ")[1]
你可以先打印完整的响应头和响应体内容,确认你的接口返回的token具体存放位置再调整代码:
# 打印所有响应头 print(response.headers) # 打印响应体内容 print(response.text)
你提供的响应截图参考:
注意事项
- 提取前务必做非空判断和格式校验,避免字段不存在时触发索引越界等异常
- 不同服务端的返回字段命名可能存在差异,以实际接口返回内容为准
- 其他编程语言的提取逻辑完全一致,仅语法写法有区别
内容的提问来源于stack exchange,提问作者masonje
相关产品推荐
相关产品推荐

