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