Установка общего времени ожидания для всего запроса WinHTTP

#winhttp

Вопрос:

Библиотека WinHTTP предоставляет функцию WinHttpSetTimeouts для установки времени ожидания для различных этапов отправки/получения HTTP-запроса/ответа. Требование состоит в том, чтобы установить общий тайм-аут для всего процесса с момента получения дескриптора сеанса, открытия запроса, подключения к серверу, отправки запроса и получения ответа и т.д.

Существует ли какой-либо API или подход для установки тайм-аута для всех этапов отправки HTTP-запроса через WinHTTP?

Комментарии:

1. WinHTTP не предлагает то, о чем вы просите. Вам придется реализовать свой собственный тайм-аут в своем собственном коде и использовать обратные вызовы для отмены выполняемых операций, если истечет время ожидания.

2. @RemyLebeau Похоже, что WinHTTP позволяет нам вызывать winhttpsettimeout несколько раз в одном и том же дескрипторе сеанса перед WinHttpConnect, WinHttpOpenRequest, WinHttpSendRequest,…; Как вы думаете, если на каждом этапе мы предоставляем оставшееся время, которое будет работать? Но я все же проверю это.

3. Я понятия не имею, сработает это или нет.