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 |
---|---|
|
Retornado por WinHttpGetProxyForUrl quando um proxy para a URL especificada não pode ser localizado. |
|
Ocorreu um erro ao executar o código de script no arquivo PAC (Configuração Automática de Proxy). |
|
O tipo de identificador fornecido está incorreto para esta operação. |
|
Ocorreu um erro interno. |
|
A URL é inválida. |
|
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. |
|
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. |
|
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. |
|
A URL do arquivo PAC especificou um esquema diferente de "http:" ou "https:". |
|
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 |