Функция WinHttpSetTimeouts (winhttp.h)
Функция WinHttpSetTimeouts задает время ожидания, связанное с транзакциями HTTP.
Синтаксис
WINHTTPAPI BOOL WinHttpSetTimeouts(
[in] HINTERNET hInternet,
[in] int nResolveTimeout,
[in] int nConnectTimeout,
[in] int nSendTimeout,
[in] int nReceiveTimeout
);
Параметры
[in] hInternet
Дескриптор HINTERNET , возвращаемый winHttpOpen или WinHttpOpenRequest.
[in] nResolveTimeout
Значение типа integer, указывающее время ожидания в миллисекундах, используемое для разрешения имен. Если разрешение занимает больше времени ожидания, запрос отменяется. Начальное значение равно нулю, что означает отсутствие времени ожидания (бесконечное).
Windows Vista и Windows XP: Если время ожидания DNS указано с помощью NAME_RESOLUTION_TIMEOUT, на каждый запрос приходится один поток.
[in] nConnectTimeout
Значение типа integer, указывающее время ожидания в миллисекундах, используемое для запросов на подключение к серверу. Если запрос на подключение занимает больше времени ожидания, запрос отменяется. Начальное значение — 60 000 (60 секунд).
Tcp/IP может истечет при настройке сокета во время трехэтапного обмена SYN/ACK независимо от значения этого параметра.
[in] nSendTimeout
Значение типа integer, указывающее время ожидания в миллисекундах, используемое для отправки запросов. Если отправка запроса занимает больше времени, чем это время ожидания, отправка отменяется. Начальное значение — 30 000 (30 секунд).
[in] nReceiveTimeout
Значение типа integer, указывающее время ожидания в миллисекундах для получения ответа на запрос. Если ответ занимает больше времени ожидания, запрос отменяется. Начальное значение — 30 000 (30 секунд).
Возвращаемое значение
Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Среди возвращаемых кодов ошибок:
Код ошибки | Описание |
---|---|
|
Не удается выполнить запрошенную операцию, так как предоставленный дескриптор находится в неправильном состоянии. |
|
Для этой операции указан неправильный тип дескриптора. |
|
Произошла внутренняя ошибка. |
|
Недостаточно памяти для выполнения запрошенной операции. (Код ошибки Windows) |
|
Один или несколько параметров времени ожидания имеют отрицательное значение, отличное от -1. |
Комментарии
Даже если WinHTTP используется в асинхронном режиме (то есть, если WINHTTP_FLAG_ASYNC задано в WinHttpOpen), эта функция работает синхронно. Возвращаемое значение указывает на успех или сбой. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Значение 0 или -1 задает время ожидания бесконечного ожидания. Значение больше 0 задает значение времени ожидания в миллисекундах. Например, 30 000 установят время ожидания в 30 секунд. Все отрицательные значения, отличные от -1, приводят к сбою функции с ERROR_INVALID_PARAMETER.
Примеры
В этом примере показано, как задать новые значения времени ожидания с помощью WinHttpSetTimeouts.
// Use WinHttpOpen to obtain an HINTERNET handle.
HINTERNET hSession = WinHttpOpen(L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
if (hSession)
{
// Use WinHttpSetTimeouts to set a new time-out values.
if (!WinHttpSetTimeouts( hSession, 10000, 10000, 10000, 10000))
printf( "Error %u in WinHttpSetTimeouts.\n", GetLastError());
// PLACE ADDITIONAL CODE HERE.
// When finished, release the HINTERNET handle.
WinHttpCloseHandle(hSession);
}
else
{
printf("Error %u in WinHttpOpen.\n", GetLastError());
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Целевая платформа | Windows |
Header | winhttp.h |
Библиотека | Winhttp.lib |
DLL | Winhttp.dll |
Распространяемые компоненты | WinHTTP 5.0 и Internet Обозреватель 5.01 или более поздней версии в Windows XP и Windows 2000. |