使用python-requests模块更新会话中的Cookie
作者:互联网
我正在使用python-requests模块来处理oAuth请求和响应.
我想在requests.session.cookies对象中设置收到的access_token(响应内容为dict).
如何使用从服务器收到的响应更新会话的现有cookie?
[编辑]
self.session = requests.session(auth=self.auth_params)
resp = self.session.post(url, data=data, headers=self.headers)
content = resp.content
我想做的事情如下:
requests.utils.dict_from_cookiejar(self.session.cookies).update(content)
这里,requests.utils.dict_from_cookiejar(self.session.cookies)返回带有一个会话密钥的dict.现在,我想更新self.session.cookies中收到的响应内容.
解决方法:
请求可以为您执行此操作,前提是您告诉它您所做的所有请求都是同一会话的一部分:
>>> import requests
>>> s = requests.session()
>>> s.get('https://www.google.com')
<Response [200]>
>>> s.cookies
<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='NID'...
使用s.get或s.post进行的后续请求将重新使用并更新服务器发送回客户端的cookie.
要将Cookie自行添加到单个请求中,只需通过cookies参数添加即可.
>>> s.get('https://www.google.com', cookies = {'cookieKey':'cookieValue'})
除非服务器为提供的cookie发回新值,否则会话将不会保留提供的cookie.
标签:python,oauth-2-0,python-requests,session-cookies,http-request 来源: https://codeday.me/bug/20190625/1286812.html