Función HttpOpenRequestA (wininet.h)

Crea un identificador de solicitud HTTP.

Sintaxis

HINTERNET HttpOpenRequestA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszVerb,
  [in] LPCSTR    lpszObjectName,
  [in] LPCSTR    lpszVersion,
  [in] LPCSTR    lpszReferrer,
  [in] LPCSTR    *lplpszAcceptTypes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parámetros

[in] hConnect

Identificador de una sesión HTTP devuelta por InternetConnect.

[in] lpszVerb

Puntero a una cadena terminada en null que contiene el verbo HTTP que se va a usar en la solicitud. Si este parámetro es NULL, la función usa GET como verbo HTTP.

[in] lpszObjectName

Puntero a una cadena terminada en null que contiene el nombre del objeto de destino del verbo HTTP especificado. Por lo general, se trata de un nombre de archivo, un módulo ejecutable o un especificador de búsqueda.

[in] lpszVersion

Puntero a una cadena terminada en null que contiene la versión HTTP que se va a usar en la solicitud. La configuración de Internet Explorer invalidará el valor especificado en este parámetro.

Si este parámetro es NULL, la función usa una versión HTTP de 1.1 o 1.0, según el valor de la configuración de Internet Explorer.

Value Significado
HTTP/1.0
HTTP versión 1.0
HTTP/1.1
HTTP versión 1.1

[in] lpszReferrer

Puntero a una cadena terminada en null que especifica la dirección URL del documento desde el que se obtuvo la dirección URL de la solicitud (lpszObjectName). Si este parámetro es NULL, no se especifica ningún remitente.

[in] lplpszAcceptTypes

Puntero a una matriz terminada en null de cadenas que indica los tipos de medios aceptados por el cliente. Este es un ejemplo.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

Si no finaliza correctamente la matriz con un puntero NULL, se producirá un bloqueo.

Si este parámetro es NULL, el cliente no acepta ningún tipo. Por lo general, los servidores interpretan la falta de tipos de aceptación para indicar que el cliente acepta solo documentos de tipo "text/*" (es decir, solo documentos de texto, no hay imágenes u otros archivos binarios).

[in] dwFlags

Opciones de Internet. Este parámetro puede ser cualquiera de los valores siguientes.

Value Significado
INTERNET_FLAG_CACHE_IF_NET_FAIL
Devuelve el recurso de la memoria caché si se produce un error en la solicitud de red para el recurso debido a un ERROR_INTERNET_CONNECTION_RESET (se ha restablecido la conexión con el servidor) o ERROR_INTERNET_CANNOT_CONNECT (error al intentar conectarse al servidor).
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 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, las funciones winINet permiten 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, las funciones de WinINet permiten de forma transparente las redirecciones desde direcciones URL HTTP a HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Usa la semántica keep-alive, si está disponible, para la conexión. Esta marca es necesaria para Microsoft Network (MSN), NT LAN Manager (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_PRAGMA_NOCACHE
Fuerza a que el servidor de origen resuelva la solicitud, incluso si existe una copia almacenada en caché en el proxy.
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 la 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 contiene el valor definido por la aplicación que asocia esta operación a los datos de la aplicación.

Valor devuelto

Devuelve un identificador de solicitud HTTP si es correcto o NULL de lo contrario. Para recuperar información de error extendida, llame a GetLastError.

Comentarios

La función HttpOpenRequest crea un nuevo identificador de solicitud HTTP y almacena los parámetros especificados en ese identificador. Un identificador de solicitud HTTP contiene una solicitud que se enviará a un servidor HTTP y contiene todos los encabezados RFC822/MIME/HTTP que se enviarán como parte de la solicitud.

Si se especifica un verbo distinto de "GET" o "POST", HttpOpenRequest establece automáticamente INTERNET_FLAG_NO_CACHE_WRITE y INTERNET_FLAG_RELOAD para la solicitud.

Con Microsoft Internet Explorer 5 y versiones posteriores, si lpszVerb está establecido en "HEAD", el encabezado Content-Length se omite en las respuestas de servidores HTTP/1.1.

En Windows 7, Windows Server 2008 R2 y versiones posteriores, la configuración de Internet Explorer reemplaza el parámetro lpszVersion . El EnableHttp1_1 es un valor del Registro en HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE controlado por Opciones de Internet establecidas en Internet Explorer para el sistema. El valor EnableHttp1_1 tiene como valor predeterminado 1. La función HttpOpenRequest actualiza cualquier versión HTTP inferior a 1.1 a HTTP versión 1.1 si EnableHttp1_1 está establecida en 1.

Después de que la aplicación que realiza la llamada haya terminado de usar el identificador HINTERNET devuelto por HttpOpenRequest, debe cerrarse mediante la función InternetCloseHandle .

Nota Cuando se envía una solicitud 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 solicitud 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 Servicios HTTP de Microsoft Windows (WinHTTP).
 

Nota

El encabezado wininet.h define HttpOpenRequest 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
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

Sesiones HTTP

Funciones de WinINet