我正在使用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。
有谁知道检测断开连接的方法?
正如python请求doc所说,keep alive在会话中是100%自动的。你应该这样读取这些行:
r = requests.get(url, stream=True)
for line in r.iter_lines():
if line:
print json.loads(line)
你可以阅读更多关于它here