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

时间:2015-02-07 01:14:53

标签: python python-requests

我使用requests.post(url, headers, timeout=10),有时收到ReadTimeout exception HTTPSConnectionPool(host='domain.com', port=443): Read timed out. (read timeout=10)

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

3 个答案:

答案 0 :(得分:26)

http://docs.python-requests.org/en/latest/user/quickstart/#timeouts,这是预期的行为。正如royhowie所提到的,将它包装在try / except块中 (例如:

try:
  requests.post(url, headers, timeout=10)
except requests.exceptions.Timeout:
  print "Timeout occurred"

答案 1 :(得分:3)

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

你可以将它像这样的异常块包装起来。由于您仅询问ReadTimeout。否则抓住所有这些;

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

答案 2 :(得分:0)

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

time.sleep(2)

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