определить время ожидания в веб-запросе с помощью Python - PullRequest
2 голосов
/ 17 марта 2019

Это мой сценарий. Я делаю запросы к веб-странице, которая в некоторых случаях занимает слишком много времени. Хотелось бы, чтобы, когда на запрос ответа от сервера ушло более 10 секунд, запрос отменяется, но без каких-либо ошибок. Это мой текущий код и ошибка, которая мне кажется. когда появляется эта ошибка, мой код заканчивается. Таким образом, я хочу сделать веб-запрос и ограничить его, если в течение 10 секунд ответа не будет, я завершу запрос и продолжу работу с моим кодом.

requests.post("www.webpage.com", headers = {'Content-type': 'application/x-www-form-urlencoded'}, data = {"conid":1,"event":5},timeout=10)
.
.
.

через 10 секунд я получаю эту ошибку

ReadTimeout: HTTPConnectionPool(host='www.webpage.com', port=80): Read timed out. (read timeout=10)

Я не ставлю реальный URL по соображениям конфиденциальности, но обычно без установки таймаута, он работает

1 Ответ

4 голосов
/ 17 марта 2019

Используйте exception для обработки тайм-аута

try:
    requests.post("www.webpage.com", headers = {'Content-type': 'application/x-www-form-urlencoded'}, data = {"conid":1,"event":5},timeout=10)

except requests.exceptions.ReadTimeout:
    print("Server didn't respond within 10 seconds")
...