AutoProxy Cache

A função WinHttpGetProxyForUrl executa a pesquisa de reprodução automática 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 Somente um servidor proxy tem suporte no momento em Problemas de AutoProxia no WinHTTP). As informações neste tópico se aplicam a chamadas para WinHttpGetProxyForUrl quando o cliente especifica a descoberta automática de proxy.

O WinHttpGetProxyForUrl localiza opcionalmente a URL de reprodução automática e baixa o script de reprodução automática desse site. O WinHttp usa o script de reprodução automática para localizar os servidores proxy. A URL de reprodução automática e o script de reprodução automática são armazenados em cache para a sessão especificada. Apenas uma URL de reprodução automática e um script são armazenados em cache para cada sessão. Normalmente, o script de reprodução automática 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 detectado durante uma chamada para WinHttpGetProxyForUrl, a chamada tentará localizar uma nova URL de reprodução automática e gerará um script e armazenará os resultados em cache. Somente 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 do processo estiver ativo quando WinHttpGetProxyForUrl for chamado, a URL e o script de reprodução automática armazenados em cache estarão disponíveis para todo o computador. No entanto, se o serviço fora do processo for usado e o sinalizador fAutoLogonIfChallenged na estrutura pAutoProxyOptions for true, a URL e o script de reprodução automática 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.

Para melhorar o desempenho

  1. Chame WinHttpGetProxyForUrl com o parâmetro fAutoLogonIfChallenged definido como false. A URL e o script de reprodução automática são armazenados em cache para chamadas futuras para WinHttpGetProxyForUrl.
  2. Se a Etapa 1 falhar, com ERROR_WINHTTP_LOGIN_FAILURE, chame WinHttpGetProxyForUrl com o membro fAutoLogonIfChallenged definido como TRUE.