关闭挥之不去的连接

时间:2013-03-20 21:50:16

标签: python python-requests

我正在使用客户端工具的python请求。它以一定间隔向服务器重复请求。但是,如果服务器断开连接,则客户端在下一个请求时失败并出现套接字错误。客户端似乎保持连接从侧面打开,而不是重新连接。这些连接可能相隔数小时,因此服务器不太可能不断开连接。

有没有办法覆盖保持活着并迫使它关闭?有类似的东西:

with requests.get(url) as r:
  doStuff(r)
# R is cleaned up, the socket is closed.

在我完成后会强制连接清理?

由于写不起作用,因为requests.Response没有__ exit__调用。

1 个答案:

答案 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()