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

使用requests.Session()时Set-Cookie头不显示及Cookie头不携带问题

使用requests.Session()时Set-Cookie和Cookie头的显示问题

这是因为httpbin的/cookies/set接口会返回3xx重定向响应(这个响应头里才包含Set-Cookie),而requests默认会自动跟随重定向,你最终拿到的r是重定向后的200响应,这个响应的headers里没有Set-Cookie。

要获取原始重定向响应里的Set-Cookie,关闭自动重定向即可:

s = requests.Session()
# 关闭自动重定向
r = s.get('https://httpbin.org/cookies/set/sessioncookie/123456789', allow_redirects=False)
print(r.headers)  # 现在能看到Set-Cookie头

问题2:第二个请求的request.headers看不到Cookie

requests.Session自动管理的cookie,不会被放到request.headers字典里——request.headers只显示你显式设置的请求头。但这不代表cookie没被携带,你可以通过以下方式验证:

  1. 查看Session当前存储的所有cookie:
print(s.cookies)
  1. 查看请求实际发送的cookie(需访问_cookies属性):
print(r2.request._cookies)
  1. 直接用httpbin的/cookies接口验证,返回的JSON会显示当前请求携带的cookie:
r2 = s.get("https://httpbin.org/cookies")
print(r2.json())  # 输出会包含sessioncookie=123456789,说明cookie已正确携带

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:07:36