Why do I receive a timeout error from Pythons requ

2020-05-26 10:00发布

I use requests.post(url, headers, timeout=10) and sometimes I received a ReadTimeout exception HTTPSConnectionPool(host='domain.com', port=443): Read timed out. (read timeout=10)

Since I already set timeout as 10 seconds, why am I still receiving a ReadTimeout exception?

3条回答
淡お忘
2楼-- · 2020-05-26 10:15
try:
    #defined request goes here
except requests.exceptions.ReadTimeout:
    # Set up for a retry, or continue in a retry loop

You can wrap it like an exception block like this. Since you asked for this only ReadTimeout. Otherwise catch all of them;

try:
    #defined request goes here
except:
    # Set up for a retry, or continue in a retry loop
查看更多
Evening l夕情丶
3楼-- · 2020-05-26 10:22

Another thing you can try is at the end of your code block, include the following:

time.sleep(2)

This worked for me. The delay is longer (in seconds) but might help overcome the issue you're having.

查看更多
狗以群分
4楼-- · 2020-05-26 10:29

Per http://docs.python-requests.org/en/latest/user/quickstart/#timeouts, that is the expected behavior. As royhowie mentioned, wrap it in a try/except block (e.g.:

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

)

查看更多
登录 后发表回答