簡體   English   中英

使用 requests.get() 和 requests.session().get() 的區別?

[英]Difference between using requests.get() and requests.session().get()?

有時我看到人們使用 requests.Session 對象調用 Web API:

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

但有時他們不會:

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

有人能解釋一下我們什么時候應該使用Session以及什么時候不需要它們嗎?

在幕后, requests.get()為每個請求創建一個新的Session對象。

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

請參閱會話文檔

Session 對象允許您跨請求保留某些參數。 它還在 Session 實例發出的所有請求中保留 cookie,並將使用 urllib3 的連接池。 因此,如果您向同一主機發出多個請求,底層 TCP 連接將被重用,這可能會導致性能顯着提升(請參閱HTTP 持久連接)。

引用文檔

Session 對象允許您跨請求保留某些參數。 它還在從 Session 實例發出的所有請求中保留 cookie。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM