我正在为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 = / 参数设置。其他两个只有到期和实际数据。
答案 0 :(得分:3)
response.cookies
仅包含该回复所设置的Cookie 。如果您被重定向,您可能会发现重定向设置了一些cookie。这些内容不会出现在response.cookies
上,但会出现在response.history[i].cookies
上。
如果您想要全面了解已设置的Cookie,您应该始终检查Session
上的Cookie词典,而不是回复。