Fonction WinHttpSetTimeouts (winhttp.h)
La fonction WinHttpSetTimeouts définit les délais d’expiration impliqués dans les transactions HTTP.
Syntaxe
WINHTTPAPI BOOL WinHttpSetTimeouts(
[in] HINTERNET hInternet,
[in] int nResolveTimeout,
[in] int nConnectTimeout,
[in] int nSendTimeout,
[in] int nReceiveTimeout
);
Paramètres
[in] hInternet
Handle HINTERNET retourné par WinHttpOpen ou WinHttpOpenRequest.
[in] nResolveTimeout
Valeur de type entier qui spécifie la valeur de délai d’attente, en millisecondes, à utiliser pour la résolution de noms. Si la résolution prend plus de temps que cette valeur de délai d’attente, la demande est annulée. La valeur initiale est zéro, ce qui signifie aucun délai d’attente (infini).
Windows Vista et Windows XP : Si le délai d’expiration DNS est spécifié à l’aide de NAME_RESOLUTION_TIMEOUT, il y a une surcharge d’un thread par requête.
[in] nConnectTimeout
Valeur de type integer qui spécifie la valeur de délai d’attente, en millisecondes, à utiliser pour les demandes de connexion au serveur. Si une demande de connexion prend plus de temps que cette valeur de délai d’attente, la demande est annulée. La valeur initiale est 60 000 (60 secondes).
TCP/IP peut expirer lors de la configuration du socket pendant l’échange SYN/ACK à trois jambes, quelle que soit la valeur de ce paramètre.
[in] nSendTimeout
Valeur de type integer qui spécifie la valeur de délai d’attente, en millisecondes, à utiliser pour l’envoi de requêtes. Si l’envoi d’une requête prend plus de temps que cette valeur de délai d’attente, l’envoi est annulé. La valeur initiale est 30 000 (30 secondes).
[in] nReceiveTimeout
Valeur de type integer qui spécifie la valeur de délai d’attente, en millisecondes, pour recevoir une réponse à une requête. Si une réponse prend plus de temps que cette valeur de délai d’attente, la demande est annulée. La valeur initiale est 30 000 (30 secondes).
Valeur retournée
Retourne LA valeur TRUE si elle réussit ou FALSE dans le cas contraire. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Parmi les codes d’erreur retournés figurent les suivants.
Code d'erreur | Description |
---|---|
|
L’opération demandée ne peut pas être effectuée, car le handle fourni n’est pas dans l’état correct. |
|
Le type de handle fourni est incorrect pour cette opération. |
|
Une erreur interne s'est produite. |
|
La mémoire disponible n’était pas suffisante pour effectuer l’opération demandée. (Code d’erreur Windows) |
|
Un ou plusieurs des paramètres de délai d’expiration ont une valeur négative autre que -1. |
Remarques
Même lorsque WinHTTP est utilisé en mode asynchrone (c’est-à-dire, lorsque WINHTTP_FLAG_ASYNC a été défini dans WinHttpOpen), cette fonction fonctionne de manière synchrone. La valeur de retour indique la réussite ou l’échec. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
La valeur 0 ou -1 définit un délai d’attente infini. Une valeur supérieure à 0 définit la valeur de délai d’attente en millisecondes. Par exemple, 30 000 définissent le délai d’attente sur 30 secondes. Toutes les valeurs négatives autres que -1 entraînent l’échec de la fonction avec ERROR_INVALID_PARAMETER.
Exemples
Cet exemple montre comment définir de nouvelles valeurs de délai d’attente à l’aide de 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());
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP, Windows 2000 Professionnel avec SP3 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003, Windows 2000 Server avec SP3 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winhttp.h |
Bibliothèque | Winhttp.lib |
DLL | Winhttp.dll |
Composant redistribuable | WinHTTP 5.0 et Internet Explorer 5.01 ou version ultérieure sur Windows XP et Windows 2000. |