在HTTP响应Python中缺少cookie

时间:2014-04-13 00:22:20

标签: python http session cookies python-requests

我正在为Sickbeard建立一个额外的提供商,并且我的cookie存在问题。 在使用请求时,为什么在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是唯一拥有 HttpOnly path = / 参数设置。其他两个只有到期和实际数据。

1 个答案:

答案 0 :(得分:3)

response.cookies仅包含该回复所设置的Cookie 。如果您被重定向,您可能会发现重定向设置了一些cookie。这些内容不会出现在response.cookies上,但会出现在response.history[i].cookies上。

如果您想要全面了解已设置的Cookie,您应该始终检查Session上的Cookie词典,而不是回复。