Compartir a través de


Función HttpSendRequestA (wininet.h)

Envía la solicitud especificada al servidor HTTP, lo que permite a los llamadores enviar datos adicionales más allá de lo que normalmente se pasa a HttpSendRequestEx.

Sintaxis

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Parámetros

[in] hRequest

Identificador devuelto por una llamada a la función HttpOpenRequest .

[in] lpszHeaders

Puntero a una cadena terminada en null que contiene los encabezados adicionales que se van a anexar a la solicitud. Este parámetro puede ser NULL si no hay encabezados adicionales que se van a anexar.

[in] dwHeadersLength

Tamaño de los encabezados adicionales, en TCHAR. Si este parámetro es -1L y lpszHeaders no es NULL, la función asume que lpszHeaders está terminada en cero (ASCIIZ) y se calcula la longitud. Vea Comentarios para obtener información específica.

[in] lpOptional

Puntero a un búfer que contiene los datos opcionales que se enviarán inmediatamente después de los encabezados de solicitud. Este parámetro se usa generalmente para las operaciones POST y PUT. Los datos opcionales pueden ser el recurso o la información que se publica en el servidor. Este parámetro puede ser NULL si no hay datos opcionales que enviar.

[in] dwOptionalLength

Tamaño de los datos opcionales, en bytes. Este parámetro puede ser cero si no hay datos opcionales que enviar.

Valor devuelto

Devuelve TRUE si se ejecuta correctamente o FALSE de lo contrario. Para obtener información de error extendida, llame a GetLastError.

Comentarios

HttpSendRequest envía la solicitud especificada al servidor HTTP y permite al cliente especificar encabezados adicionales para enviar junto con la solicitud.

La función también permite al cliente especificar datos opcionales para enviar al servidor HTTP inmediatamente después de los encabezados de solicitud. Esta característica se usa generalmente para operaciones de "escritura", como PUT y POST.

Una vez enviada la solicitud, se leen el código de estado y los encabezados de respuesta del servidor HTTP. Estos encabezados se mantienen internamente y están disponibles para las aplicaciones cliente a través de la función HttpQueryInfo .

Una aplicación puede usar el mismo identificador de solicitud HTTP en varias llamadas a HttpSendRequest, pero la aplicación debe leer todos los datos devueltos de la llamada anterior antes de volver a llamar a la función.

En el modo sin conexión, HttpSendRequest devuelve ERROR_FILE_NOT_FOUND si el recurso no se encuentra en la memoria caché de Internet.

Hay dos versiones de HttpSendRequest: HttpSendRequestA (que se usa con compilaciones ANSI) y HttpSendRequestW (se usa con compilaciones Unicode). Si dwHeadersLength es -1L y lpszHeaders no es NULL, se producirá lo siguiente: Si se llama a HttpSendRequestA , la función asume que lpszHeaders está terminada en cero (ASCIIZ) y se calcula la longitud. Si se llama a HttpSendRequestW , se produce un error en la función con ERROR_INVALID_PARAMETER.

Nota La función HttpSendRequestA representa encabezados como caracteres ISO-8859-1 que no son caracteres ANSI. La función HttpSendRequestW representa encabezados como caracteres ISO-8859-1 convertidos en caracteres UTF-16LE. Como resultado, nunca es seguro usar la función HttpSendRequestW cuando los encabezados que se van a agregar pueden contener caracteres no ASCII. En su lugar, una aplicación puede usar las funciones MultiByteToWideChar y WideCharToMultiByte con un parámetro Codepage establecido en 28591 para asignar entre caracteres ANSI y caracteres UTF-16LE.
 
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 HttpSendRequest 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

Sesiones HTTP

Funciones de WinINet