WinHttpGetProxyForUrl, fonction (winhttp.h)
La fonction WinHttpGetProxyForUrl récupère les données de proxy pour l’URL spécifiée.
Syntaxe
WINHTTPAPI BOOL WinHttpGetProxyForUrl(
[in] HINTERNET hSession,
[in] LPCWSTR lpcwszUrl,
[in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
[out] WINHTTP_PROXY_INFO *pProxyInfo
);
Paramètres
[in] hSession
Handle de session WinHTTP retourné par la fonction WinHttpOpen .
[in] lpcwszUrl
Pointeur vers une chaîne Unicode terminée par un caractère Null qui contient l’URL de la requête HTTP que l’application se prépare à envoyer.
[in] pAutoProxyOptions
Pointeur vers une structure de WINHTTP_AUTOPROXY_OPTIONS qui spécifie les options de proxy automatique à utiliser.
[out] pProxyInfo
Pointeur vers une structure WINHTTP_PROXY_INFO qui reçoit le paramètre de proxy. Cette structure est ensuite appliquée au handle de requête à l’aide de l’option WINHTTP_OPTION_PROXY. Libérez les chaînes lpszProxy et lpszProxyBypass contenues dans cette structure (si elles ne sont pas NULL) à l’aide de la fonction GlobalFree .
Valeur retournée
Si la fonction réussit, la fonction retourne TRUE.
Si la fonction échoue, elle retourne FALSE. Pour les données d’erreur étendues, appelez GetLastError.
Les codes d’erreur possibles incluent le folllowing.
Code d'erreur | Description |
---|---|
|
Retourné par WinHttpGetProxyForUrl lorsqu’un proxy pour l’URL spécifiée est introuvable. |
|
Une erreur s’est produite lors de l’exécution du code de script dans le fichier PAC (Proxy Auto-Configuration). |
|
Le type de handle fourni est incorrect pour cette opération. |
|
Une erreur interne s'est produite. |
|
L’URL n’est pas valide. |
|
Échec de la tentative de connexion. Lorsque cette erreur se produit, fermez le handle de requête avec WinHttpCloseHandle. Un nouveau handle de requête doit être créé avant de réessayer la fonction qui a initialement généré cette erreur. |
|
L’opération a été annulée, généralement parce que le handle sur lequel la requête fonctionnait a été fermé avant la fin de l’opération. |
|
Impossible de télécharger le fichier PAC. Par exemple, le serveur référencé par l’URL PAC n’a peut-être pas été accessible, ou le serveur a retourné une réponse 404 NOT FOUND. |
|
L’URL du fichier PAC a spécifié un schéma autre que « http : » ou « https : ». |
|
La mémoire disponible était insuffisante pour terminer l’opération demandée. (Code d’erreur Windows) |
Remarques
Cette fonction implémente le protocole WPAD (Web Proxy Auto-Discovery) pour configurer automatiquement les paramètres de proxy pour une requête HTTP. Le protocole WPAD télécharge un fichier PAC (Proxy Auto-Configuration), qui est un script qui identifie le serveur proxy à utiliser pour une URL cible donnée. Les fichiers PAC sont généralement déployés par le service informatique au sein d’un environnement réseau d’entreprise. L’URL du fichier PAC peut être spécifiée explicitement ou WinHttpGetProxyForUrl peut être invité à découvrir automatiquement l’emplacement du fichier PAC sur le réseau local.
WinHttpGetProxyForUrl prend uniquement en charge les fichiers PAC basés sur ECMAScript.
WinHttpGetProxyForUrl doit être appelé par URL, car le fichier PAC peut retourner un serveur proxy différent pour différentes URL. Cela est utile, car le fichier PAC permet à un service informatique d’implémenter l’équilibrage de charge du serveur proxy en mappant (hachage) l’URL cible (spécifiée par le paramètre lpcwszUrl ) à un certain proxy dans un tableau de serveurs proxy.
WinHttpGetProxyForUrl met en cache l’URL autoproxy et le script autoproxy lorsque la découverte automatique est spécifiée dans le membre dwFlags de la structure pAutoProxyOptions . Pour plus d’informations, consultez Cache autoproxy.
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 |