AutoProxy Cache
A funçãoWinHttpGetProxyForUrl doexecuta a pesquisa de proxy automático por solicitação para a URL especificada. Se vários proxies forem retornados, os aplicativos cliente deverão testar cada proxy antes de enviar a solicitação (para obter mais informações, consulte a seção Apenas um servidor proxy é suportado atualmente em Problemas de AutoProxy no WinHTTP). As informações neste tópico se aplicam a chamadas para WinHttpGetProxyForUrl quando o cliente especifica a descoberta automática de proxy.
WinHttpGetProxyForUrl opcionalmente localiza a URL do autoproxy e baixa o script de proxy automático desse site. WinHttp usa o script de proxy automático para localizar os servidores proxy. A URL do proxy automático e o script do proxy automático são armazenados em cache para a sessão especificada. Apenas um URL e script de proxy automático são armazenados em cache para cada sessão. Normalmente, o script de proxy automático e a URL são armazenados em cache até que o endereço IP associado ao computador seja alterado. Se um novo endereço IP for detetado durante uma chamada para WinHttpGetProxyForUrl, a chamada tentará localizar uma nova URL e script de proxy automático e armazenar em cache os resultados. Apenas um usuário deve ser permitido por sessão, para que os dados armazenados em cache não sejam compartilhados com outros usuários no computador. Para obter mais informações, consulte Visão geral das sessões WinHTTP.
Se o serviço fora de processo estiver ativo quando WinHttpGetProxyForUrl for chamado, a URL e o script de proxy automático armazenados em cache estarão disponíveis para todo o computador. No entanto, se o serviço fora de processo for usado e o sinalizador fAutoLogonIfChallenged na estrutura pAutoProxyOptions for true, a URL e o script do proxy automático não serão armazenados em cache. Portanto, chamar WinHttpGetProxyForUrl com o membro fAutoLogonIfChallenged definido como TRUE resulta em operações de sobrecarga adicionais que podem afetar o desempenho. As etapas a seguir podem ser usadas para melhorar o desempenho.
Melhorar o desempenho
- Chame WinHttpGetProxyForUrl com o parâmetro fAutoLogonIfChallenged definido como false. A URL e o script do proxy automático são armazenados em cache para chamadas futuras para WinHttpGetProxyForUrl.
- Se a Etapa 1 falhar, com ERROR_WINHTTP_LOGIN_FAILURE, chame WinHttpGetProxyForUrl com o membro fAutoLogonIfChallenged definido como TRUE.