python中requests庫session對象的妙用詳解
在進行接口測試的時候,我們會調(diào)用多個接口發(fā)出多個請求,在這些請求中有時候需要保持一些共用的數(shù)據(jù),例如cookies信息。
妙用1
requests庫的session對象能夠幫我們跨請求保持某些參數(shù),也會在同一個session實例發(fā)出的所有請求之間保持cookies。
舉個栗子,跨請求保持cookies,在命令行上輸入下面命令:
# 創(chuàng)建一個session對象 s = requests.Session() # 用session對象發(fā)出get請求,設(shè)置cookies s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') # 用session對象發(fā)出另外一個get請求,獲取cookies r = s.get("http://httpbin.org/cookies") # 顯示結(jié)果 r.text '{"cookies": {"sessioncookie": "123456789"}}'
妙用2
requests庫的session對象還能為我們提供請求方法的缺省數(shù)據(jù),通過設(shè)置session對象的屬性來實現(xiàn)。
舉個栗子,設(shè)置請求的auth和headers默認的缺省參數(shù):
# 創(chuàng)建一個session對象 s = requests.Session() # 設(shè)置session對象的auth屬性,用來作為請求的默認參數(shù) s.auth = ('user', 'pass') # 設(shè)置session的headers屬性,通過update方法,將其余請求方法中的headers屬性合并起來作為最終的請求方法的headers s.headers.update({'x-test': 'true'}) # 發(fā)送請求,這里沒有設(shè)置auth會默認使用session對象的auth屬性,這里的headers屬性會與session對象的headers屬性合并 r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'}) # 查看發(fā)送請求的請求頭 r.request.headers
得到的請求頭部是這樣的:
{'Authorization': 'Basic dXNlcjpwYXNz', 'x-test': 'false'}
注意1:方法層的參數(shù)覆蓋會話的參數(shù),舉個栗子:
將上面的請求中加上auth參數(shù):
r = s.get('http://httpbin.org/headers', auth=('user','hah'), headers={'x-test2': 'true'})
獲取該請求的請求頭
{'Authorization': 'Basic dXNlcjpoYWg=', 'x-test': 'false'}
我們發(fā)現(xiàn),請求方法中的Authorization變化了,也就是說方法層的參數(shù)覆蓋了session的屬性。
注意2:在request請求中,省略session對象中設(shè)置的屬性,只需簡單地在方法層參數(shù)中將那個鍵的值設(shè)置為 None ,那個鍵就會被自動省略掉。
再舉個栗子:
TBD
總結(jié)
以上就是本文關(guān)于python中requests庫session對象的妙用詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Python面向?qū)ο缶幊袒A(chǔ)解析(一)、13個最常用的Python深度學(xué)習(xí)庫介紹等,有什么問題可以隨時留言,小編會及時回復(fù)大家的。
- python中requests模塊的使用方法
- python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例
- Python使用requests發(fā)送POST請求實例代碼
- python中requests使用代理proxies方法介紹
- python?如何使用requests下載文件
- Python爬蟲庫requests獲取響應(yīng)內(nèi)容、響應(yīng)狀態(tài)碼、響應(yīng)頭
- Python3使用requests包抓取并保存網(wǎng)頁源碼的方法
- 詳解Python requests 超時和重試的方法
- Python requests timeout的設(shè)置
- 解決Python requests 報錯方法集錦
- Python中Requests庫的實現(xiàn)示例

在Python中如何優(yōu)雅地創(chuàng)建表格的實現(xiàn)

Django1.7+python 2.78+pycharm配置mysql數(shù)據(jù)庫

python實現(xiàn)帶聲音的摩斯碼翻譯實現(xiàn)方法

python numpy實現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例