如何检测python请求中的断开连接保持活动连接?

时间:2019-03-26 10:11:57

标签: python python-requests keep-alive urllib3

我正在使用python-requests连接到实时供稿。 连接后,使用iter_lines在数据到达时对其进行遍历。 我正在尝试检测断开连接是否发生,目前没有成功。

我目前检测到断开连接的方法是,等待最长30秒以等待新线路到达,如果没有,我将重新启动连接。问题是我错过了在这30秒内到达的数据。

作为测试,我尝试在中间关闭wifi并查看是否有任何变化(例如Response.status_code),但是没有变化。

示例代码:

r = requests.get(url, stream=True)

while True:
     time.sleep(1)
     print(r.status_code)

我希望打印后的连接显示200,而关闭wifi时显示SOME_SORT_OF_ERROR,但我仍然看到200。

有人知道检测断开连接的方法吗?

1 个答案:

答案 0 :(得分:0)

正如python请求文档所说,在会话中,保持活动是100%自动的。您应该这样阅读各行:

r = requests.get(url, stream=True)

for line in r.iter_lines():
    if line:
        print json.loads(line)

您可以详细了解here