Funzione WinHttpSetTimeouts (winhttp.h)
La funzione WinHttpSetTimeouts imposta i timeout coinvolti nelle transazioni HTTP.
Sintassi
WINHTTPAPI BOOL WinHttpSetTimeouts(
[in] HINTERNET hInternet,
[in] int nResolveTimeout,
[in] int nConnectTimeout,
[in] int nSendTimeout,
[in] int nReceiveTimeout
);
Parametri
[in] hInternet
Handle DELL'oggetto PROMPTNET restituito da WinHttpOpen o WinHttpOpenRequest.
[in] nResolveTimeout
Valore di tipo integer che specifica il valore di timeout, espresso in millisecondi, da utilizzare per la risoluzione dei nomi. Se la risoluzione richiede più tempo di questo valore di timeout, la richiesta viene annullata. Il valore iniziale è zero, ovvero nessun timeout (infinito).
Windows Vista e Windows XP: Se il timeout DNS viene specificato usando NAME_RESOLUTION_TIMEOUT, si verifica un sovraccarico di un thread per ogni richiesta.
[in] nConnectTimeout
Valore di tipo integer che specifica il valore di timeout, espresso in millisecondi, da utilizzare per le richieste di connessione del server. Se una richiesta di connessione richiede più tempo di questo valore di timeout, la richiesta viene annullata. Il valore iniziale è 60.000 (60 secondi).
TCP/IP può verificarsi un timeout durante la configurazione del socket durante lo scambio SYN/ACK a tre gambe, indipendentemente dal valore di questo parametro.
[in] nSendTimeout
Valore di tipo integer che specifica il valore di timeout, espresso in millisecondi, da utilizzare per l'invio di richieste. Se l'invio di una richiesta richiede più tempo di questo valore di timeout, l'invio viene annullato. Il valore iniziale è 30.000 (30 secondi).
[in] nReceiveTimeout
Valore di tipo integer che specifica il valore di timeout, espresso in millisecondi, per ricevere una risposta a una richiesta. Se una risposta richiede più tempo di questo valore di timeout, la richiesta viene annullata. Il valore iniziale è 30.000 (30 secondi).
Valore restituito
Restituisce TRUE se l'operazione riesce o FALSE in caso contrario. Per informazioni sugli errori estesi, chiamare GetLastError. Tra i codici di errore restituiti sono riportati di seguito.
Codice di errore | Descrizione |
---|---|
|
Impossibile eseguire l'operazione richiesta perché l'handle fornito non è nello stato corretto. |
|
Il tipo di handle fornito non è corretto per questa operazione. |
|
Si è verificato un errore interno. |
|
Memoria insufficiente per completare l'operazione richiesta. (Codice errore di Windows) |
|
Uno o più parametri di timeout hanno un valore negativo diverso da -1. |
Commenti
Anche quando WinHTTP viene usato in modalità asincrona , ovvero quando WINHTTP_FLAG_ASYNC è stato impostato in WinHttpOpen, questa funzione funziona in modo sincrono. Il valore restituito indica l'esito positivo o negativo. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Il valore 0 o -1 imposta un timeout per l'attesa infinita. Un valore maggiore di 0 imposta il valore di timeout in millisecondi. Ad esempio, 30.000 imposta il timeout su 30 secondi. Tutti i valori negativi diversi da -1 causano l'esito negativo della funzione con ERROR_INVALID_PARAMETER.
Esempio
Questo esempio mostra come impostare nuovi valori di timeout usando 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());
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP, Windows 2000 Professional con SP3 [solo app desktop] |
Server minimo supportato | Windows Server 2003, Windows 2000 Server con SP3 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winhttp.h |
Libreria | Winhttp.lib |
DLL | Winhttp.dll |
Componente ridistribuibile | WinHTTP 5.0 e Internet Explorer 5.01 o versione successiva in Windows XP e Windows 2000. |
Vedi anche
Informazioni sui servizi HTTP di Microsoft Windows (WinHTTP)