Funzione WinHttpGetProxyForUrlEx (winhttp.h)
La funzione WinHttpGetProxyForUrlEx recupera i dati proxy per l'URL specificato.
Sintassi
WINHTTPAPI DWORD WinHttpGetProxyForUrlEx(
[in] HINTERNET hResolver,
[in] PCWSTR pcwszUrl,
[in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
[in] DWORD_PTR pContext
);
Parametri
[in] hResolver
Handle del resolver WinHTTP restituito dalla funzione WinHttpCreateProxyResolver .
[in] pcwszUrl
Puntatore a una stringa Unicode con terminazione Null che contiene un URL per cui verranno determinate le informazioni sul proxy.
[in] pAutoProxyOptions
Puntatore a una struttura WINHTTP_AUTOPROXY_OPTIONS che specifica le opzioni proxy automatico da usare.
[in] pContext
Dati di contesto che verranno passati alla funzione di callback di completamento.
Valore restituito
Codice di stato che indica il risultato dell'operazione.
È possibile che vengano restituiti i codici seguenti. | Descrizione |
---|---|
|
L'operazione continua in modo asincrono. |
|
Restituito da WinHttpGetProxyForUrlEx quando non è possibile individuare un proxy per l'URL specificato. |
|
Si è verificato un errore durante l'esecuzione del codice script nel file di configurazione automatica del proxy . |
|
Il tipo di handle fornito non è corretto per questa operazione. |
|
L'URL non è valido. |
|
L'operazione è stata annullata, in genere perché l'handle su cui era operativa la richiesta è stato chiuso prima del completamento dell'operazione. |
|
Impossibile scaricare il file PAC. Ad esempio, il server a cui fa riferimento l'URL PAC potrebbe non essere stato raggiungibile oppure il server ha restituito una risposta 404 NOT FOUND. |
|
L'URL del file PAC ha specificato uno schema diverso da "http:" o "https:". |
|
Memoria insufficiente per completare l'operazione richiesta. (Codice errore di Windows) |
Commenti
Questa funzione implementa il protocollo WPAD (Web Proxy Auto-Discovery) per configurare automaticamente le impostazioni proxy per una richiesta HTTP. Il protocollo WPAD scarica un file PAC (Proxy Auto Configuration), ovvero uno script che identifica il server proxy da usare per un URL di destinazione specificato. I file PAC vengono in genere distribuiti dal reparto IT all'interno di un ambiente di rete aziendale. È possibile specificare l'URL del file PAC in modo esplicito o WinHttpGetProxyForUrlEx per individuare automaticamente il percorso del file PAC nella rete locale.
WinHttpGetProxyForUrlEx supporta solo i file PAC basati su ECMAScript.
WinHttpGetProxyForUrlEx deve essere chiamato in base all'URL, perché il file PAC può restituire un server proxy diverso per URL diversi. Ciò è utile perché il file PAC consente a un reparto IT di implementare il bilanciamento del carico del server proxy eseguendo il mapping (hashing) dell'URL di destinazione (specificato dal parametro lpcwszUrl ) a un determinato proxy in una matrice di server proxy.
WinHttpGetProxyForUrlEx memorizza nella cache l'URL autoproxy e lo script autoproxy quando l'individuazione automatica viene specificata nel membro dwFlags della struttura pAutoProxyOptions . Per altre informazioni, vedere Cache autoproxy.
WinHttpGetProxyForUrlEx fornisce un'API completamente asincrona e annullabile che WinHttpGetProxyForUrl non esegue . WinHttpGetProxyForUrlEx fornisce anche all'applicazione l'elenco proxy completo restituito dallo script PAC che consente all'applicazione di gestire meglio il failover in "DIRECT" e di comprendere SOCKS, se necessario.
WinHttpGetProxyForUrlEx viene sempre eseguito in modo asincrono e restituisce immediatamente con ERROR_IO_PENDING in caso di esito positivo. Il callback viene impostato chiamando WinHttpSetStatusCallback nella sessione hSession fornita da WinHttpOpen. In alternativa, chiamare WinHttpSetStatusCallbacksull'oggetto hResolver fornito da WinHttpCreateProxyResolver per avere un callback specifico per ogni chiamata.
Devi chiamare WinHttpSetStatusCallback prima di WinHttpCreateProxyResolver. Quando si chiama WinHttpSetStatusCallback, usare WINHTTP_CALLBACK_FLAG_REQUEST_ERROR | WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE. Per informazioni sull'uso del callback, vedere WINHTTP_STATUS_CALLBACK .
Quando viene restituito un callback di stato WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE , l'applicazione può chiamare WinHttpGetProxyResult nell'handle del resolver usato per rilasciare WinHttpGetProxyForUrlEx per ricevere i risultati di tale chiamata.
Se la chiamata non riesce dopo la restituzione di ERROR_IO_PENDING , verrà emesso un callback di WINHTTP_CALLBACK_STATUS_REQUEST_ERROR .
Questa funzione esegue sempre out-of-process.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winhttp.h |
Libreria | Winhttp.lib |
DLL | Winhttp.dll |