我使用requests.post(url, headers, timeout=10)
,有时收到ReadTimeout exception HTTPSConnectionPool(host='domain.com', port=443): Read timed out. (read timeout=10)
由于我已将超时设置为10秒,为什么我仍然收到ReadTimeout异常?
答案 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)
这对我有用。延迟时间更长(以秒为单位),但可能有助于解决您遇到的问题。