繁体   English   中英

为 requests.Session() 对象设置主机和端口

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM