Share via


Função WinHttpGetProxyForUrl (winhttp.h)

A função WinHttpGetProxyForUrl recupera os dados de proxy para a URL especificada.

Sintaxe

WINHTTPAPI BOOL WinHttpGetProxyForUrl(
  [in]  HINTERNET                 hSession,
  [in]  LPCWSTR                   lpcwszUrl,
  [in]  WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
  [out] WINHTTP_PROXY_INFO        *pProxyInfo
);

Parâmetros

[in] hSession

O identificador de sessão WinHTTP retornado pela função WinHttpOpen .

[in] lpcwszUrl

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém a URL da solicitação HTTP que o aplicativo está preparando para enviar.

[in] pAutoProxyOptions

Um ponteiro para uma estrutura WINHTTP_AUTOPROXY_OPTIONS que especifica as opções de proxy automático a serem usadas.

[out] pProxyInfo

Um ponteiro para uma estrutura WINHTTP_PROXY_INFO que recebe a configuração de proxy. Essa estrutura é então aplicada ao identificador de solicitação usando a opção WINHTTP_OPTION_PROXY. Libere as cadeias de caracteres lpszProxy e lpszProxyBypass contidas nessa estrutura (se não forem NULL) usando a função GlobalFree .

Retornar valor

Se a função for bem-sucedida, a função retornará TRUE.

Se a função falhar, ela retornará FALSE. Para dados de erro estendidos, chame GetLastError.

Os códigos de erro possíveis incluem o folllowing.

Código do Erro Descrição
ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR
Retornado por WinHttpGetProxyForUrl quando um proxy para a URL especificada não pode ser localizado.
ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT
Ocorreu um erro ao executar o código de script no arquivo PAC (Configuração Automática de Proxy).
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
O tipo de identificador fornecido está incorreto para esta operação.
ERROR_WINHTTP_INTERNAL_ERROR
Ocorreu um erro interno.
ERROR_WINHTTP_INVALID_URL
A URL é inválida.
ERROR_WINHTTP_LOGIN_FAILURE
Falha na tentativa de logon. Quando esse erro for encontrado, feche o identificador de solicitação com WinHttpCloseHandle. Um novo identificador de solicitação deve ser criado antes de repetir a função que originalmente produziu esse erro.
ERROR_WINHTTP_OPERATION_CANCELLED
A operação foi cancelada, geralmente porque o identificador no qual a solicitação estava operando foi fechado antes da conclusão da operação.
ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT
Não foi possível baixar o arquivo PAC. Por exemplo, o servidor referenciado pela URL PAC pode não ter sido acessível ou o servidor retornou uma resposta 404 NOT FOUND.
ERROR_WINHTTP_UNRECOGNIZED_SCHEME
A URL do arquivo PAC especificou um esquema diferente de "http:" ou "https:".
ERROR_NOT_ENOUGH_MEMORY
Não havia memória suficiente disponível para concluir a operação solicitada. (Código de erro do Windows)

Comentários

Essa função implementa o protocolo WPAD (Descoberta Automática de Proxy Web) para definir automaticamente as configurações de proxy para uma solicitação HTTP. O protocolo WPAD baixa um arquivo PAC (Configuração Automática de Proxy), que é um script que identifica o servidor proxy a ser usado para uma determinada URL de destino. Os arquivos PAC normalmente são implantados pelo departamento de TI em um ambiente de rede corporativa. A URL do arquivo PAC pode ser especificada explicitamente ou WinHttpGetProxyForUrl pode ser instruído a descobrir automaticamente o local do arquivo PAC na rede local.

WinHttpGetProxyForUrl dá suporte apenas a arquivos PAC baseados em ECMAScript.

WinHttpGetProxyForUrl deve ser chamado por URL, pois o arquivo PAC pode retornar um servidor proxy diferente para URLs diferentes. Isso é útil porque o arquivo PAC permite que um departamento de TI implemente o balanceamento de carga do servidor proxy mapeando (hash) a URL de destino (especificada pelo parâmetro lpcwszUrl ) para um determinado proxy em uma matriz de servidor proxy.

WinHttpGetProxyForUrl armazena em cache a URL de reprodução automática e o script de reprodução automática quando a descoberta automática é especificada no membro dwFlags da estrutura pAutoProxyOptions . Para obter mais informações, consulte Cache autoproxy.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional com SP3 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003, Windows 2000 Server com SP3 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winhttp.h
Biblioteca Winhttp.lib
DLL Winhttp.dll

Confira também

Versões do WinHTTP