Compartir a través de


Función InternetOpenUrlA (wininet.h)

Abre un recurso especificado por una dirección URL HTTP o FTP completa.

Sintaxis

HINTERNET InternetOpenUrlA(
  [in] HINTERNET hInternet,
  [in] LPCSTR    lpszUrl,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parámetros

[in] hInternet

Identificador de la sesión actual de Internet. El identificador debe haber sido devuelto por una llamada anterior a InternetOpen.

[in] lpszUrl

Puntero a una variable de cadena terminada en null que especifica la dirección URL que se va a empezar a leer. Solo se admiten las direcciones URL que comienzan por ftp:, http:o https: .

[in] lpszHeaders

Puntero a una cadena terminada en null que especifica los encabezados que se van a enviar al servidor HTTP. Para obtener más información, vea la descripción del parámetro lpszHeaders en la función HttpSendRequest .

[in] dwHeadersLength

Tamaño de los encabezados adicionales, en TCHAR. Si este parámetro es -1L y lpszHeaders no es NULL, se supone que lpszHeaders es de terminación cero (ASCIIZ) y se calcula la longitud.

[in] dwFlags

Este parámetro puede ser uno de los valores siguientes.

Valor Significado
INTERNET_FLAG_EXISTING_CONNECT
Intenta usar un objeto InternetConnect existente si existe con los mismos atributos necesarios para realizar la solicitud. Esto solo es útil con operaciones FTP, ya que FTP es el único protocolo que normalmente realiza varias operaciones durante la misma sesión. La API de WinINet almacena en caché un único identificador de conexión para cada identificador HINTERNET generado por InternetOpen. InternetOpenUrl usa esta marca para las conexiones HTTP y FTP.
INTERNET_FLAG_HYPERLINK
Fuerza una recarga si no había ninguna hora de expiración y no se devolvió la hora LastModified del servidor al determinar si se debe volver a cargar el elemento de la red.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Deshabilita la comprobación de certificados basados en SSL/PCT que se devuelven desde el servidor con el nombre de host especificado en la solicitud. Las funciones de WinINet usan una comprobación sencilla de los certificados comparando los nombres de host coincidentes y las reglas de caracteres comodín simples.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Deshabilita la comprobación de certificados basados en SSL/PCT para las fechas de validez adecuadas.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Deshabilita la detección de este tipo especial de redirección. Cuando se usa esta marca, WinINet permite de forma transparente las redirecciones de HTTPS a direcciones URL HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Deshabilita la detección de este tipo especial de redirección. Cuando se usa esta marca, WinINet permite de forma transparente las redirecciones de HTTP a direcciones URL HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Usa la semántica de mantenimiento activo, si está disponible, para la conexión. Esta marca es necesaria para Microsoft Network (MSN), NTLM y otros tipos de autenticación.
INTERNET_FLAG_NEED_FILE
Hace que se cree un archivo temporal si el archivo no se puede almacenar en caché.
INTERNET_FLAG_NO_AUTH
No intenta la autenticación automáticamente.
INTERNET_FLAG_NO_AUTO_REDIRECT
No controla automáticamente el redireccionamiento en HttpSendRequest.
INTERNET_FLAG_NO_CACHE_WRITE
No agrega la entidad devuelta a la memoria caché.
INTERNET_FLAG_NO_COOKIES
No agrega automáticamente encabezados de cookies a las solicitudes y no agrega automáticamente cookies devueltas a la base de datos de cookies.
INTERNET_FLAG_NO_UI
Deshabilita el cuadro de diálogo cookie.
INTERNET_FLAG_PASSIVE
Usa la semántica de FTP pasivo. InternetOpenUrl usa esta marca para archivos y directorios FTP.
INTERNET_FLAG_PRAGMA_NOCACHE
Obliga a que el servidor de origen resuelva la solicitud, incluso si existe una copia almacenada en caché en el proxy.
INTERNET_FLAG_RAW_DATA
Devuelve los datos como una estructura de WIN32_FIND_DATA al recuperar información del directorio FTP. Si no se especifica esta marca o si la llamada se realizó a través de un proxy CERN, InternetOpenUrl devuelve la versión HTML del directorio.

Windows XP y Windows Server 2003 R2 y versiones anteriores: También devuelve datos como una estructura de GOPHER_FIND_DATA al recuperar información de directorio de Gopher.

INTERNET_FLAG_RELOAD
Fuerza una descarga del archivo, el objeto o el listado de directorio solicitado del servidor de origen, no de la memoria caché.
INTERNET_FLAG_RESYNCHRONIZE
Vuelve a cargar los recursos HTTP si el recurso se ha modificado desde la última vez que se descargó. Se vuelven a cargar todos los recursos FTP.

Windows XP y Windows Server 2003 R2 y versiones anteriores: Los recursos de Gopher también se vuelven a cargar.

INTERNET_FLAG_SECURE
Usa semántica de transacción segura. Esto se traduce en el uso de capa de sockets seguros/tecnología de comunicaciones privadas (SSL/PCT) y solo es significativo en las solicitudes HTTP.

[in] dwContext

Puntero a una variable que especifica el valor definido por la aplicación que se pasa, junto con el identificador devuelto, a cualquier función de devolución de llamada.

Valor devuelto

Devuelve un identificador válido a la dirección URL si la conexión se ha establecido correctamente o NULL si se produce un error en la conexión. Para recuperar un mensaje de error específico, llame a GetLastError. Para determinar por qué se denegó el acceso al servicio, llame a InternetGetLastResponseInfo.

Comentarios

Llame primero a InternetCanonicalizeUrl si la dirección URL que se usa contiene una dirección URL relativa y una dirección URL base separadas por espacios en blanco.

Se trata de una función general que una aplicación puede usar para recuperar datos a través de cualquiera de los protocolos que admite WinINet. Esta función es especialmente útil cuando la aplicación no necesita acceder a los detalles de un protocolo, sino que solo requiere los datos correspondientes a una dirección URL. La función InternetOpenUrl analiza la cadena de dirección URL, establece una conexión al servidor y se prepara para descargar los datos identificados por la dirección URL. A continuación, la aplicación puede usar InternetReadFile (para archivos) o InternetFindNextFile (para directorios) para recuperar los datos de la dirección URL. No es necesario llamar a InternetConnect antes de InternetOpenUrl.

Windows XP y Windows Server 2003 R2 y versiones anteriores: InternetOpenUrl deshabilita Gopher en los puertos inferiores a 1024, excepto el puerto 70, el puerto Gopher estándar y el puerto 105, normalmente se usan para las búsquedas de nombres de la Organización de Servicios Centrales (CSO).

Una vez que la aplicación que realiza la llamada haya terminado de usar el identificador HINTERNET devuelto por InternetOpenUrl, debe cerrarse mediante la función InternetCloseHandle .

Nota Al trabajar en modo asincrónico (el parámetro dwFlags de InternetOpen especifica INTERNET_FLAG_ASYNC) y el parámetro dwContext es cero (INTERNET_NO_CALLBACK), la función de devolución de llamada establecida con InternetSetStatusCallback en el identificador de sesión no se invocará; sin embargo, la llamada se seguirá realizando en modo asincrónico.

Al igual que todos los demás aspectos de la API de WinINet, esta función no se puede llamar de forma segura desde DllMain ni desde los constructores y destructores de objetos globales.

Nota WinINet no admite implementaciones de servidor. Además, no se debe usar desde un servicio. En el caso de las implementaciones de servidor o los servicios, use los servicios HTTP de Microsoft Windows (WinHTTP).
 

Nota

El encabezado wininet.h define InternetOpenUrl como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wininet.h
Library Wininet.lib
Archivo DLL Wininet.dll

Consulte también

Control de localizadores uniformes de recursos

Funciones de WinINet