Función WinHttpGetProxyForUrlEx (winhttp.h)
La función WinHttpGetProxyForUrlEx recupera los datos de proxy de la dirección URL especificada.
Sintaxis
WINHTTPAPI DWORD WinHttpGetProxyForUrlEx(
[in] HINTERNET hResolver,
[in] PCWSTR pcwszUrl,
[in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
[in] DWORD_PTR pContext
);
Parámetros
[in] hResolver
Identificador de resolución WinHTTP devuelto por la función WinHttpCreateProxyResolver .
[in] pcwszUrl
Puntero a una cadena Unicode terminada en null que contiene una dirección URL para la que se determinará la información del proxy.
[in] pAutoProxyOptions
Puntero a una estructura de WINHTTP_AUTOPROXY_OPTIONS que especifica las opciones de proxy automático que se van a usar.
[in] pContext
Datos de contexto que se pasarán a la función de devolución de llamada de finalización.
Valor devuelto
Código de estado que indica el resultado de la operación.
Se pueden devolver los códigos siguientes. | Descripción |
---|---|
|
La operación continúa de forma asincrónica. |
|
Devuelto por WinHttpGetProxyForUrlEx cuando no se puede encontrar un proxy para la dirección URL especificada. |
|
Error al ejecutar el código de script en el archivo de configuración automática de proxy (PAC). |
|
El tipo de identificador proporcionado es incorrecto para esta operación. |
|
La dirección URL no es válida. |
|
La operación se canceló, normalmente porque el identificador en el que estaba funcionando la solicitud se cerró antes de que se completara la operación. |
|
No se pudo descargar el archivo PAC. Por ejemplo, es posible que el servidor al que hace referencia la dirección URL de PAC no haya sido accesible o el servidor devolvió una respuesta 404 NOT FOUND. |
|
La dirección URL del archivo PAC especificó un esquema distinto de "http:" o "https:". |
|
No había suficiente memoria disponible para completar la operación solicitada. (Código de error de Windows) |
Comentarios
Esta función implementa el protocolo de detección automática de proxy web (WPAD) para configurar automáticamente la configuración del proxy para una solicitud HTTP. El protocolo WPAD descarga un archivo de configuración automática de proxy (PAC), que es un script que identifica el servidor proxy que se va a usar para una dirección URL de destino determinada. Normalmente, el departamento de TI implementa archivos PAC dentro de un entorno de red corporativa. Se puede especificar explícitamente la dirección URL del archivo PAC o WinHttpGetProxyForUrlEx para detectar automáticamente la ubicación del archivo PAC en la red local.
WinHttpGetProxyForUrlEx solo admite archivos PAC basados en ECMAScript.
Se debe llamar a WinHttpGetProxyForUrlEx por dirección URL, ya que el archivo PAC puede devolver un servidor proxy diferente para diferentes direcciones URL. Esto resulta útil porque el archivo PAC permite a un departamento de TI implementar el equilibrio de carga del servidor proxy mediante la asignación (hash) de la dirección URL de destino (especificada por el parámetro lpcwszUrl ) a un determinado proxy en una matriz de servidores proxy.
WinHttpGetProxyForUrlEx almacena en caché la dirección URL de autoproxy y el script de autoproxy cuando se especifica la detección automática en el miembro dwFlags de la estructura pAutoProxyOptions . Para más información, consulte Autoproxy Cache.
WinHttpGetProxyForUrlEx proporciona una API totalmente asincrónica y cancelable que WinHttpGetProxyForUrl no. WinHttpGetProxyForUrlEx también proporciona a la aplicación la lista de proxy completa que devolvió el script PAC, lo que permite a la aplicación controlar mejor la conmutación por error a "DIRECT" y comprender CALCET si lo desea.
WinHttpGetProxyForUrlEx siempre se ejecuta de forma asincrónica y devuelve inmediatamente con ERROR_IO_PENDING si se ejecuta correctamente. La devolución de llamada se establece llamando a WinHttpSetStatusCallback en la hSession proporcionada por WinHttpOpen. Como alternativa, llame a WinHttpSetStatusCallback en el hResolver proporcionado por WinHttpCreateProxyResolver para tener una devolución de llamada específica para cada llamada.
Debe llamar a WinHttpSetStatusCallback antes de WinHttpCreateProxyResolver. Al llamar a WinHttpSetStatusCallback, use WINHTTP_CALLBACK_FLAG_REQUEST_ERROR | WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE. Consulte WINHTTP_STATUS_CALLBACK para obtener información sobre el uso de la devolución de llamada.
Una vez que se devuelve una devolución de llamada de estado WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE , la aplicación puede llamar a WinHttpGetProxyResult en el identificador de resolución usado para emitir WinHttpGetProxyForUrlEx para recibir los resultados de esa llamada.
Si se produce un error en la llamada después de devolver ERROR_IO_PENDING , se emitirá una devolución de llamada de WINHTTP_CALLBACK_STATUS_REQUEST_ERROR .
Esta función siempre se ejecuta fuera de proceso.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winhttp.h |
Library | Winhttp.lib |
Archivo DLL | Winhttp.dll |