我正在使用客户端工具的python请求。它以一定间隔向服务器重复请求。但是,如果服务器断开连接,则客户端在下一个请求时失败并出现套接字错误。客户端似乎保持连接从侧面打开,而不是重新连接。这些连接可能相隔数小时,因此服务器不太可能不断开连接。
有没有办法覆盖保持活着并迫使它关闭?有类似的东西:
with requests.get(url) as r:
doStuff(r)
# R is cleaned up, the socket is closed.
在我完成后会强制连接清理?
由于写不起作用,因为requests.Response没有__ exit__调用。
答案 0 :(得分:3)
这个怎么样?
我没有根据API文档进行测试:
s = requests.Session()
r = s.get(url)
doStuff(r)
s.close()
或者,为了确保始终调用close,即使存在异常,以下是使用try / finally模拟with语句的方法:
s = requests.Session()
try:
r = s.get(url)
doStuff(r)
finally:
s.close()