AutoProxy Cache
La fonction WinHttpGetProxyForUrl effectue une recherche automatique par requête pour l’URL spécifiée. Si plusieurs proxys sont retournés, les applications clientes doivent tester chaque proxy avant d’envoyer la demande (pour plus d’informations, consultez la un seul serveur proxy est actuellement pris en charge section problèmes deproxy automatique dans WinHTTP). Les informations de cette rubrique s’appliquent aux appels à WinHttpGetProxyForUrl lorsque le client spécifie la découverte automatique du proxy.
WinHttpGetProxyForUrl localise éventuellement l’URL de l’autoproxy et télécharge le script autoproxy à partir de ce site. WinHttp utilise le script autoproxy pour localiser les serveurs proxy. L’URL d’autoproxy et le script autoproxy sont mis en cache pour la session spécifiée. Une seule URL et un script autoproxy sont mis en cache pour chaque session. En règle générale, le script et l’URL autoproxy sont mis en cache jusqu’à ce que l’adresse IP associée à l’ordinateur change. Si une nouvelle adresse IP est détectée pendant un appel à WinHttpGetProxyForUrl, l’appel tente de localiser une nouvelle URL et un script autoproxy et met en cache les résultats. Un seul utilisateur doit être autorisé par session afin que les données mises en cache ne soient pas partagées avec d’autres utilisateurs sur l’ordinateur. Pour plus d’informations, consultez Vue d’ensemble des sessions WinHTTP.
Si le service hors processus est actif lorsque WinHttpGetProxyForUrl est appelé, l’URL et le script autoproxy mis en cache sont disponibles pour l’ordinateur entier. Toutefois, si le service hors processus est utilisé et que l’indicateur fAutoLogonIfChallenged dans la structure pAutoProxyOptions est true, l’URL et le script autoproxy ne sont pas mis en cache. Par conséquent, l’appel WinHttpGetProxyForUrl avec le membre fAutoLogonIfChall enged défini sur TRUE entraîne des opérations de surcharge supplémentaires susceptibles d’affecter les performances. Les étapes suivantes peuvent être utilisées pour améliorer les performances.
Pour améliorer les performances
- Appelez WinHttpGetProxyForUrl avec le paramètre fAutoLogonIfChallenged défini sur false. L’URL et le script autoproxy sont mis en cache pour les appels futurs à WinHttpGetProxyForUrl.
- Si l’étape 1 échoue, avec ERROR_WINHTTP_LOGIN_FAILURE, appelez WinHttpGetProxyForUrl avec le membre fAutoLogonIfChall enged défini sur TRUE.