套接字超时:Python请求超时

10

使用 requests Python 库进行 GET 请求,并处理超时异常(以及其他我未在此处展示的异常)如下:

import requests
timeout1=20
timeout2=40

try:
    #first attempt
    resp = requests.get(base_url+resource, params=payload, headers=headers,
    timeout=timeout1)
except requests.exceptions.Timeout:
    #timed out, retry once
    try:
       resp = requests.get(base_url+resource, params=payload, headers=headers,
       timeout=timeout2)
       return resp.json()
    except requests.exceptions.RequestException as e:
       #Still failed; return error code
       return -1

大多数时候这个程序都能正常运行,但有时会因为错误socket.timeout: timed out而完全退出,而不是抛出requests.exceptions.Timeout让我来处理。

requests库为什么会这样?我该如何处理?


你找到这个问题的答案了吗? - user2801184
这是答案:尝试: data = sock.recv(256) except socket.timeout: data="无响应" - user2801184
2个回答

2

2

回答:

try:
    data = sock.recv(256)
except socket.timeout:
    data="NO RESPONSE"

它无法退出!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接