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

问题描述 投票:0回答:1

我正在使用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 python-requests keep-alive urllib3
1个回答
0
投票

正如python请求doc所说,keep alive在会话中是100%自动的。你应该这样读取这些行:

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

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

你可以阅读更多关于它here

© www.soinside.com 2019 - 2024. All rights reserved.