python - HTTP 响应 Python 中缺少 cookie

标签 python http session cookies python-requests

我正在为 Sickbeard 构建一个额外的提供程序,但我的 cookie 有问题。 为什么在使用 requests 时 HTTP 响应中缺少 cookie,我已经找了很长时间。

login_params = {'uid': sickbeard.PROVIDER_USERNAME,
                'pwd': sickbeard.PROVIDER_PASSWORD,
               }

try:
    response = self.session.post(self.urls['login'], data=login_params, timeout=30)
except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError), e:
    logger.log(u'Unable to connect to ' + self.name + ' provider: ' +ex(e), logger.ERROR)
    return False


响应仅包含一个 cookie __cdfuid cookie:

requests.utils.dict_from_cookiejar(self.session.cookies)['__cfduid']


我在登录提供商时获得(和想要)的 cookie 是 __cdfuid | uid | 通过:

requests.utils.dict_from_cookiejar(self.session.cookies)['__cfduid']
requests.utils.dict_from_cookiejar(self.session.cookies)['uid'] #Not passed
requests.utils.dict_from_cookiejar(self.session.cookies)['pass'] #Not passed


我不知道这是否重要,但 __cdfuid cookie 是唯一具有 HttpOnlypath=/ 参数设置。另外两个只有过期时间和实际数据。

最佳答案

response.cookies 仅包含由该响应设置的 cookie。如果您被重定向,您可能会发现一些 cookie 是由重定向设置的。这些不会出现在 response.cookies 上,但它们会出现在 response.history[i].cookies 上。

如果您想全面了解已设置的 cookie,则应始终检查 Session 上的 cookie 字典,而不是响应。

关于python - HTTP 响应 Python 中缺少 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037730/

相关文章:

c# - 使用 HTTPWebRequest 获取远程页面的标题

Node.js session

php - 从 CodeIgniter 中的 View 检查 session

c# - ASP.NET MVC 和 C# : HttpStatusCodeResult() vs HttpNotFound()

session - 配置两个cxf jaxrs客户端以使用相同的 session (cookie)

python - 从 GeoPy 地理编码器返回单个地址组件(城市、州等)

python - 使用循环和字典进行动态计数的大多数 pythonic 方式

python - Django python paypalrestsdk - 没有 'Access-Control-Allow-Origin' 和 ppxo_unhandled_error 错误

python - 如何使用 SSL 创建 python websocket 并在其中使用 cookie?

php - 请求格式错误时如何获取原始请求数据?