python中request.get()與request.session().get()方法有何區別呢?api/session

看到別人代碼裏,有時候使用request.Session對象調用Web API:

client = requests.session()
resp = client.get(url='...')

有時候又是這樣的,直接調用:

resp = requests.get(url='...')

這兩種使用方法到底有何區別呢?

這就需要從會話談起了。
在後臺,爲每個請求requests.get()創建一個新Session對象。

通過預先創建會話對象,您可以重用該會話。例如,這使您可以保留cookie,並讓您重新使用用於所有連接的設置,例如標題和查詢參數。最重要的是,會話使您可以利用連接池。重用與同一主機的連接。

通過Session對象,您可以在請求中保留某些參數。它還會在所有從Session實例發出的請求中保留cookie,並將使用urllib3的連接池。因此,如果您要向同一主機發出多個請求,則基礎TCP連接將被重用,這可能會導致性能顯着提高,具體的可以參閱 HTTP持久連接.

mgxcool 博主根據實際案例進行了描述,生動且具體: 如何在requests session中手動設置cookie

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章