可以将请求表示为数据结构,其中各个参数都可以通过一个Request对象来表示,这个数据结构就叫Prepared Requests。
引入了Request,用url,data,headers参数构造了一个Request对象,需要再调用Seesion的prepare_request()方法将其转换为一个Prepared Requests对象,然后用send()方法发送即可,可以看到同样达到了POST请求效果。
实例:
from requests import Request, Session
url = 'http://httpbin.org/post'
data = {
'name': 'zhangsan',
'age': '22',
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
s = Session()
req = Request('POST', url=url, data=data, headers=headers)
prepped = s.prepare_request(req)
r = s.send(prepped)
print(r.text)
结果:
有了Request这个对象,就可以将请求当作独立的对象来看待,这样在进行队列调度时会非常方便。