Python请求集cookie未正确设置

Python请求集cookie未正确设置,python,cookies,python-requests,Python,Cookies,Python Requests,“Set-cookie”未正确返回到请求会话 代码: 让我们检查响应的cookie(空) 让我们检查会话的cookie(空) r.cookies 我认为请求应该自动将设置cookie加载到会话中,对吗?为什么它不在这里工作,我应该如何使用这里的标题设置cookie?在处理请求之前创建一个会话: 导入请求 s=请求。会话() response=s.put(“192.168.1.111/getC”,json=data,verify=False) 如文件中所述: 会话对象 会话对象允许您跨请求持久

“Set-cookie”
未正确返回到请求会话

代码:

让我们检查响应的cookie(空)

让我们检查会话的cookie(空)

r.cookies

我认为
请求
应该自动将
设置cookie
加载到会话中,对吗?为什么它不在这里工作,我应该如何使用这里的标题设置cookie?

在处理请求之前创建一个
会话

导入请求
s=请求。会话()
response=s.put(“192.168.1.111/getC”,json=data,verify=False)
如文件中所述:

会话对象

会话对象允许您跨请求持久化某些参数。它还跨会话实例发出的所有请求持久化cookie,并将使用urllib3的连接池。因此,如果您向同一主机发出多个请求,则底层TCP连接将被重用,这将导致性能显著提高(请参阅HTTP持久连接)

然后,在会话级别检查cookie,而不是在
响应中检查cookie:


s.cookies

我认为这里的
请求没有问题,可能是服务器给了你错误的响应

似乎
请求
无法识别此
设置Cookie
响应头,因为其中的
不正确:

'Set-Cookie':'Credentials=sdf34dsfsfsdf234r23r;路径=/;Domain=blah.local;安全'
我已经在
localhost
上设置了一个测试web服务器,并尝试手动设置
set Cookie
头,与上面的完全相同,而响应的Cookie是空的


然后我删除了
;Domain=blah.local;安全
部分来自
设置Cookie
标题(
安全
指令),一切正常。

“我认为请求应自动将设置Cookie加载到会话”文档说明了什么?@DeepSpace我在文档中没有找到它,但我记得它应该…检查
会话
级别的cookies:
s.cookies
我仍然不明白,我检查了响应cookie和会话。看到我的最后一个代码块了吗?你能发送你请求的URL吗?我刚刚尝试过,正如你所说的,
域和
scure
会影响到这一点。但这为什么特别呢?这是一个
请求
的bug吗?正如我前面提到的–这不是
请求
bug。您的本地服务器给您错误的
设置Cookie
标题–
应该与您请求的域匹配,或者被完全删除(请阅读答案中的链接)。
import requests

r = requests.Session()
respond = r.put("192.168.1.111/getC", json=data, verify=False)
respond.cookies
<RequestsCookieJar[]>
respond.headers
{'Content-Type': 'application/json; charset=UTF-8', 'Date': 'Sun, 30 Jun 2019 11:19:05 GMT+00:00', 'Accept-Ranges': 'bytes', 'Server': 'Restlet-Framework/2.3.12', 'Set-Cookie': 'Credentials=sdf34dsfsdf23rsdfsdf234r23r23r; Path=/; Domain=blah.local; Secure'}
r.cookies
<RequestsCookieJar[]>