为什么我从Pythons请求模块收到超时错误?

为什么我从Pythons请求模块收到超时错误?,python,python-requests,Python,Python Requests,我使用requests.post(url,headers,timeout=10)有时收到ReadTimeout异常HTTPSConnectionPool(host='domain.com',port=443):读取超时。(读取超时=10) 既然我已经将超时设置为10秒,为什么我仍然收到ReadTimeout异常?Per,这是预期的行为。正如royhowie提到的,将其包装在try/except块中 (例如: ) 您可以像这样将其包装为异常块。因为您只要求执行此操作ReadTimeout。否则就把

我使用
requests.post(url,headers,timeout=10)
有时收到
ReadTimeout异常HTTPSConnectionPool(host='domain.com',port=443):读取超时。(读取超时=10)

既然我已经将超时设置为10秒,为什么我仍然收到ReadTimeout异常?

Per,这是预期的行为。正如royhowie提到的,将其包装在try/except块中 (例如:

)

您可以像这样将其包装为异常块。因为您只要求执行此操作
ReadTimeout
。否则就把他们全部抓起来

try:
    #defined request goes here
except:
    # Set up for a retry, or continue in a retry loop

您可以尝试的另一件事是在代码块的末尾,包括以下内容:

time.sleep(2)

这对我有用。延迟时间更长(以秒为单位),但可能有助于克服您遇到的问题。

将其包装在try/catch块中?您好,欢迎快速回复。我会这么做的,希望你能尽快回复。这是一个更好的答案,因为捕获此错误将捕获ConnectTimeout和ReadTimeout错误。@您在问题中提到的nuttynibbles如何捕获
ReadTimeout异常?
。否则,只需使用
try/except
并捕获它们。抱歉,我不确定为什么这里显示0投票,即使我向你的anshi@howabotno投了赞成票,最初我认为通过设置timeout参数,如果需要的时间超过此时间,它将自动停止请求过程使用此答案,我编写了一个函数来处理它:
try:
    #defined request goes here
except:
    # Set up for a retry, or continue in a retry loop
time.sleep(2)