python 我如何知道连接流何时关闭使用请求库?

9wbgstp7  于 2023-08-02  发布在  Python
关注(0)|答案(1)|浏览(94)

我正在连接API流。此连接始终处于活动状态,我从此API接收数据。我的问题是,有时连接关闭,我需要再次连接,但我的代码没有为这个关闭的连接打开任何异常。这就好像连接仍然是活动的,但没有接收任何数据。我如何知道连接何时断开?
我的代码:

try:
    response = requests.get(url, stream=True)

    response.raise_for_status()

    for line in response.iter_lines():
        if line:
            print(line)
        else:
          print("No data returned.")

except requests.exceptions.RequestException as e:
    print("Error connection:", e)

字符串

mkshixfv

mkshixfv1#

我通过API文档发现,如果我在URL中传递一个名为'Heartbeat'的额外参数,每10秒就会发送一个Heartbeat事件来测试连接。所以我在API调用中传递了一个值为20秒的超时,如果连接断开,20秒后我会出现一个异常,我会用它来尝试重新连接。

http = requests.Session()

while True:
    try:
        resp = http.get(url, stream=True, timeout=20)
        if resp.status_code == 200:
            # Do things

     except Exception as error:
        logging.info(f'Error: {error}')

字符串

相关问题