代码如下:
import requests
mi_requests = requests.Session()
response_first = mi_requests.get(url=login_url_first,headers=login_header_first)
print response_first.request.headers
print response_first.cookies['JSESSIONID']
response_second = mi_requests.get(url=login_url_second)
print response_second.request.headers
返回信息:
第一个print
{'Accept-Language': 'zh-CN,zh;q=0.9', 'Accept-Encoding': 'gzip, deflate', 'Host': 'e.mi.com', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1'}
第二个Print
aaaeKLWkeCfZWhAGOF_iw
第三个Print
{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.18.4'}
session实例化,为什么不携带http头信息了?
你实例化了Session后没有设置mi_requests.headers,而是为第一个request单独传了一个headers
两种headers是会merge,但单独传的并不会设置成session的。
所以统一设置
如果有额外独立的headers属性可以再放到每个request参数里传入。