python中requests.session的妙用


在進行接口測試的時候,我們會調用多個接口發出多個請求,在這些請求中有時候需要保持一些共用的數據,例如cookies信息。

1、requests庫的session對象能夠幫我們跨請求保持某些參數,也會在同一個session實例發出的所有請求之間保持cookies。

s = requests.session()
# req_param = '{"belongId": "300001312","userName": "alitestss003","password":"pxkj88","captcha":"pxpx","captchaKey":"59675w1v8kdbpxv"}'
# res = s.post('http://test.e.fanxiaojian.cn/metis-in-web/auth/login', json=json.loads(req_param))
# # res1 = s.get("http://test.e.fanxiaojian.cn/eos--web/analysis/briefing")
# print(res.cookies.values()) 獲取登陸的所有session

2、requests庫的session對象還能為我們提供請求方法的缺省數據,通過設置session對象的屬性來實現
eg:

# 創建一個session對象  

s = requests.Session()  

# 設置session對象的auth屬性,用來作為請求的默認參數  

s.auth = ('user', 'pass')  

# 設置session的headers屬性,通過update方法,將其余請求方法中的headers屬性合並起來作為最終的請求方法的headers  

s.headers.update({'x-test': 'true'})  

# 發送請求,這里沒有設置auth會默認使用session對象的auth屬性,這里的headers屬性會與session對象的headers屬性合並  

r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})  

上面的請求數據等於:{'Authorization': 'Basic dXNlcjpwYXNz', 'x-test': 'false'}

# 查看發送請求的請求頭  

r.request.headers      #打印響應中請求的所有header數據

res3 = s.get("http://pre.n.cn/irs-web/sso/login",cookies = cookie)
print(res3.request.headers.get("Cookie").split("IRSSID=")[-1])
print(type(res3.request.headers.get("Cookie").split("IRSSID=")[-1]))
print(res3.request._cookies)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM