Función WinHttpSetTimeouts (winhttp.h)
La función WinHttpSetTimeouts establece tiempos de espera implicados en transacciones HTTP.
Sintaxis
WINHTTPAPI BOOL WinHttpSetTimeouts(
[in] HINTERNET hInternet,
[in] int nResolveTimeout,
[in] int nConnectTimeout,
[in] int nSendTimeout,
[in] int nReceiveTimeout
);
Parámetros
[in] hInternet
Identificador HINTERNET devuelto por WinHttpOpen o WinHttpOpenRequest.
[in] nResolveTimeout
Valor de tipo entero que especifica el valor de tiempo de espera, en milisegundos, que se va a usar para la resolución de nombres. Si la resolución tarda más de este valor de tiempo de espera, se cancela la solicitud. El valor inicial es cero, lo que significa que no se agota el tiempo de espera (infinito).
Windows Vista y Windows XP: Si se especifica el tiempo de espera de DNS mediante NAME_RESOLUTION_TIMEOUT, hay una sobrecarga de un subproceso por solicitud.
[in] nConnectTimeout
Valor de tipo entero que especifica el valor de tiempo de espera, en milisegundos, que se va a usar para las solicitudes de conexión del servidor. Si una solicitud de conexión tarda más de este valor de tiempo de espera, se cancela la solicitud. El valor inicial es 60 000 (60 segundos).
TCP/IP puede agotar el tiempo de espera al configurar el socket durante el intercambio SYN/ACK de tres piernas, independientemente del valor de este parámetro.
[in] nSendTimeout
Valor de tipo entero que especifica el valor de tiempo de espera, en milisegundos, que se va a usar para enviar solicitudes. Si el envío de una solicitud tarda más de este valor de tiempo de espera, se cancela el envío. El valor inicial es 30 000 (30 segundos).
[in] nReceiveTimeout
Valor de tipo entero que especifica el valor de tiempo de espera, en milisegundos, para recibir una respuesta a una solicitud. Si una respuesta tarda más de este valor de tiempo de espera, se cancela la solicitud. El valor inicial es 30 000 (30 segundos).
Valor devuelto
Devuelve TRUE si se ejecuta correctamente o FALSE de lo contrario. Para obtener información de error extendida, llame a GetLastError. Entre los códigos de error devueltos se incluyen los siguientes.
Código de error | Descripción |
---|---|
|
No se puede llevar a cabo la operación solicitada porque el identificador proporcionado no está en el estado correcto. |
|
El tipo de identificador proporcionado es incorrecto para esta operación. |
|
Se ha producido un error interno. |
|
No había suficiente memoria disponible para completar la operación solicitada. (Código de error de Windows) |
|
Uno o varios de los parámetros de tiempo de espera tienen un valor negativo distinto de -1. |
Comentarios
Incluso cuando WinHTTP se usa en modo asincrónico (es decir, cuando WINHTTP_FLAG_ASYNC se ha establecido en WinHttpOpen), esta función funciona de forma sincrónica. El valor devuelto indica éxito o error. Para obtener información de error extendida, llame a GetLastError.
Un valor de 0 o -1 establece un tiempo de espera para esperar infinitamente. Un valor mayor que 0 establece el valor de tiempo de espera en milisegundos. Por ejemplo, 30 000 establecería el tiempo de espera en 30 segundos. Todos los valores negativos distintos de -1 hacen que se produzca un error en la función con ERROR_INVALID_PARAMETER.
Ejemplos
En este ejemplo se muestra cómo establecer nuevos valores de tiempo de espera mediante 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());
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winhttp.h |
Library | Winhttp.lib |
Archivo DLL | Winhttp.dll |
Redistribuible | WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000. |