session的⼀些参数含义session如何设置和读取
⼀、会话对象session
1、session对象能够帮我们跨请求保持某些参数,也会在同⼀个session实例发出的所有请求之间保持cookies
import requests
s=requests.Session() #创建⼀个session对象
<('/cookies/set/sessioncookie/123456789') #设置cookies
r = s.get('/cookies')
)
#结果
{"cookies": { "sessioncookie": "123456789"}
2、提供请求⽅法的缺省数据,通过设置session对象的属性来实现
import requests
s=requests.Session()
#设置session对象的auth属性,⽤来作为请求的默认参数
s.auth=('user','pass')
#设置session的headers属性,通过update⽅法,将其余请求⽅法中的headers属性合并起来作为最终的请求⽅法的headers
s.headers.update({'x-text':'true'})
#发送请求,这⾥没有设置auth会默认使⽤session对象的auth属性,这⾥的headers属性会与session对象的headers属性合并
('/headers',headers={'x-test2':'true'}) #如果设置相同的'x-text'则会覆盖上⾯设置的header
)
3、以上通过 s.headers.update ⽅法设置了 headers 的变量。然后我们⼜在请求中设置了⼀个 headers,且⽅法层的参数覆盖会话的参数;函数参数级别的数据会和session级别的数据合并,如果key重复,函数参数级别的数据将覆盖session级别的数据。如果想取消session的某个参数,可以在传递⼀个相同key,value为None的dict
#结果
{
“headers”: {
“Accept”: “/”,
“Accept-Encoding”: “gzip, deflate”,
“Authorization”: “Basic dXNlcjpwYXNz”, #
“Connection”: “close”,
“Host”: “”,
“User-Agent”: “python-requests/2.18.4”,
“X-Test2”: “true”, #
“X-Text”: “true” #
}
}
函数参数中的数据只会使⽤⼀次,并不会保存到session中
import requests
s=requests.Session()
s.auth=('user','pass')
s.headers.update({'x-text':'true'})
('/headers',headers={'x-test2':'true'})
)
('/headers')
print('第⼆次访问结果')
)
如图第⼆次访问的时候已经没有函数参数设置的数据
3、会话还可以⽤作前后⽂管理器,保证with 区块退出后会话能被关闭
with requests.Session() as s:
<('/cookies/set/sessioncookie/123456789')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论