我正在使用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。
有人知道检测断开连接的方法吗?
答案 0 :(得分:0)
正如python请求文档所说,在会话中,保持活动是100%自动的。您应该这样阅读各行:
r = requests.get(url, stream=True)
for line in r.iter_lines():
if line:
print json.loads(line)
您可以详细了解here