Здравствуйте.
Пишу достаточно простое приложение на Python (3.6).
Задача:
Делать множественные повторяющиеся асинхронные get запросы с digest-авторизацией.
В данный момент использую следующий код:Для примера я осознанно сделал ошибку: установил timeout в 5 секунд для запроса, который гарантированно будет длиться 10. Происходит ошибка. Хотелось бы её как-то хэндлить, но не понимаю как это сделать.from threading import Thread
from requests import get, post, put, patch, delete, options, head
from requests.auth import HTTPDigestAuth
request_methods = {
'get': get,
'post': post,
'put': put,
'patch': patch,
'delete': delete,
'options': options,
'head': head,
}
def result(response, otherdata):
print(str("OtherData: ") + otherdata + str(" Content: ") + str(response.content))
input("Job done!")
def async_request(method, *args, callback=None, timeout=15, **kwargs):
method = request_methods[method.lower()]
if callback:
def callback_with_args(response, *args, **kwargs):
callback(response)
kwargs['hooks'] = {'response': callback_with_args}
kwargs['timeout'] = timeout
thread = Thread(target=method, args=args, kwargs=kwargs)
thread.start()
async_request('get', 'http://httpbin.org/delay/10', auth=HTTPDigestAuth("login", "pass"), timeout=5, callback=lambda res: result(res,"123"))
Подскажите, пожалуйста кодом, если это возможно.