Compartir a través de


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 un cadena terminadanull 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 un cadena terminada en nullque 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 un cadena terminadanull 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, en función del valor de la configuración de Internet Explorer.

Valor Significado
http/1.0
HTTP versión 1.0
HTTP/1.1
Http, versión 1.1

[in] lpszReferrer

Puntero a un cadena terminada en nullque 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 un matriz terminadanull 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 solo acepta 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 siguientes valores.

Valor Significado
INTERNET_FLAG_CACHE_IF_NET_FAIL
Devuelve el recurso de la memoria caché si se produce un error en la solicitud de red del 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 del servidor con el nombre de host proporcionado 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 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 winINet permiten 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), 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
Obliga 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 la lista de directorios solicitados desde el servidor de origen, no desde la memoria caché.
INTERNET_FLAG_RESYNCHRONIZE
Recarga los recursos HTTP si el recurso se ha modificado desde la última vez que se descargó. Todos los recursos FTP se vuelven a cargar.

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

INTERNET_FLAG_SECURE
Usa la semántica de transacciones seguras. 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 se ejecuta correctamente o null de lo contrario. Para recuperar información de error extendida, llame a GetLastError.

Observaciones

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 invalida el parámetro lpszVersion. El EnableHttp1_1 es un valor del Registro en HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE controlados por Opciones de Internet establecidas en Internet Explorer para el sistema. El valor de 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 de llamada haya terminado de usar el identificador HINTERNET de 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wininet.h
biblioteca de Wininet.lib
DLL de Wininet.dll

Consulte también

sesiones HTTP

funciones winINet