requests库入门13-会话对象

会话对象可以在跨请求保持某些参数,会话对象有requests api的大部分方法,我理解会话对象就是一个资源共享池

使用requests.Session()可以创建会话对象的实例

还是以之前GitHub的接口为例,之前文章在调用接口的时候,每次都需要做一个基本认证。那现在直接把这个基本认证放到会话对象里面,然后通过会话对象去调用接口。

import requests
s = requests.Session()
s.auth = ('username','password')

url1 = 'https://api.github.com/user'
url2 = 'https://api.github.com/user/emails'

r1 = s.get(url1)
print('r1:',r1.status_code)
print('r1:',r1.text)

r2 = s.get(url2)
print('r2:',r2.status_code)
print('r2:',r1.text)

url是查询认证过后的用户信息的接口,url2是查询用户邮箱的接口

换成自己GitHub的账户名和密码

可以看到两个不同接口的请求,都没有写关于认证的代码。但是还是都请求成功了。因为会话对象自动把auth参数加进去了。

一般会话对象使用在登录的时候,这样登录之后就会把cookie等信息拿到,这样再请求别的时候就不用带上cookie了。

不过官方文档说方法级别的参数,就算添加到了对象也只会生效一次,比如cookies。没有试验过

posted @ 2018-07-17 13:55  梦忆安凉  阅读(276)  评论(0编辑  收藏  举报