Почему я получаю ошибку тайм-аута от модуля Pythons requests?

Я использую requests.post(url, headers, timeout=10) и иногда я получал ReadTimeout exception HTTPSConnectionPool(host='domain.com', port=443): Read timed out. (read timeout=10)

поскольку я уже установил тайм-аут как 10 секунд, почему я все еще получаю исключение ReadTimeout?

2 ответов


Per 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"

)


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