请求文档提供了类似的代码
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")
如果我想使用request.Session的连接池功能,每次发送请求时是否需要实例化一个新的Session?如果我不需要新的会话,我该怎么检查旧的seeion现在有效吗?
答案 0 :(得分:1)
如果您想使用连接池,则不想要创建新会话。连接池由Session
对象管理,您应该通过它传递所有请求。
通常,如果您使用Requests在程序中执行两个或三个以上的HTTP请求,则应创建一个Session
对象并通过它运行所有请求。这将为您提供请求所提供的所有好处,例如cookie持久性和连接池。
答案 1 :(得分:0)
所以,我查看了文档并且......我认为它会自动让你的会话保持活力。
如果您对死亡会话有任何问题,请告诉我,但请假设请求将为您处理。我可能误解了文档,但我认为你不必担心它。
来自文档:
保持活动
好消息 - 感谢urllib3,keep-alive在会话中是100%自动的! 您在会话中发出的任何请求都将自动重用相应的请求 连接!
请注意,连接只会释放回池中,以便在所有正文数据后重复使用 已被阅读;一定要将stream设置为False或读取content属性 响应对象。