[英]Setting host and port for requests.Session() objects
我將如何配置Session()
object 以便通過它的所有請求都使用相同的主機和端口?
目前我會做以下事情:
urls = [f'https://somehost.com:1234/query?page={i}' for i in range(10)]
s = requests.Session()
for url in urls:
r = s.get(url)
有沒有辦法顯式設置持久連接的主機和端口? 例如:
s = requests.Session()
s.host = 'https://somehost.com'
s.port = '1234'
從有關會話的requests
文檔中:
Session object 允許您跨請求保留某些參數。 它還在從 Session 實例發出的所有請求中保留 cookies,並將使用 urllib3 的連接池。 因此,如果您向同一主機發出多個請求,則底層 TCP 連接將被重用,這可以顯着提高性能(請參閱 HTTP 持久連接)。
所以當你每次給 url 時。 引擎蓋下的請求不會為每個請求創建新的 TCP 套接字連接。 它將重用 TCP 套接字連接到此主機和連接池中的端口。
會話背后的主要思想是在每個請求之間共享參數和 cookies,而不必在每個請求中單獨設置它們。 並且在引擎蓋下它將保持連接。 但您仍然需要在每次通話中提供完整的 URL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.