Función HttpReceiveRequestEntityBody (http.h)

La función HttpReceiveRequestEntityBody recibe datos adicionales del cuerpo de la entidad para una solicitud HTTP especificada.

Sintaxis

HTTPAPI_LINKAGE ULONG HttpReceiveRequestEntityBody(
  [in]            HANDLE          RequestQueueHandle,
  [in]            HTTP_REQUEST_ID RequestId,
  [in]            ULONG           Flags,
  [out]           PVOID           EntityBuffer,
  [in]            ULONG           EntityBufferLength,
  [out, optional] PULONG          BytesReturned,
  [in, optional]  LPOVERLAPPED    Overlapped
);

Parámetros

[in] RequestQueueHandle

Identificador de la cola de solicitudes desde la que se van a recuperar los datos del cuerpo de la entidad especificados. Se crea una cola de solicitudes y su identificador devuelto por una llamada a la función HttpCreateRequestQueue .

Windows Server 2003 con SP1 y Windows XP con SP2: El identificador de la cola de solicitudes se crea mediante la función HttpCreateHttpHandle .

[in] RequestId

Identificador de la solicitud HTTP que contiene el cuerpo de la entidad recuperada. Este valor se devuelve en el miembro RequestId de la estructura HTTP_REQUEST mediante una llamada a la función HttpReceiveHttpRequest . Este valor no puede ser HTTP_NULL_ID.

[in] Flags

Este parámetro puede ser el siguiente valor de marca.

Windows Server 2003 con SP1 y Windows XP con SP2: Este parámetro está reservado y debe ser cero.

Valor Significado
HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER
Especifica que el búfer se rellenará con uno o varios cuerpos de entidad, a menos que no haya ningún cuerpo de entidad restante que copiar.

[out] EntityBuffer

Puntero a un búfer que recibe datos de cuerpo de entidad.

[in] EntityBufferLength

Tamaño, en bytes, del búfer al que apunta el parámetro pBuffer .

[out, optional] BytesReturned

Opcional. Puntero a una variable que recibe el tamaño, en bytes, de los datos del cuerpo de la entidad devueltos en el búfer de pBuffer .

Al realizar una llamada asincrónica mediante pOverlapped, establezca pBytesReceived enNULL. De lo contrario, cuando pOverlapped se establece en NULL, pBytesReceived debe contener una dirección de memoria válida y no establecerse en NULL.

[in, optional] Overlapped

Para las llamadas asincrónicas, establezca pOverlapped para que apunte a una estructura SUPERPUESTA ; para llamadas sincrónicas, establéztelo en NULL.

Una llamada sincrónica se bloquea hasta que se recuperan los datos del cuerpo de la entidad, mientras que una llamada asincrónica devuelve inmediatamente ERROR_IO_PENDING y la aplicación que realiza la llamada usa puertos de finalización de E/S o GetOverlappedResult para determinar cuándo se completa la operación. Para obtener más información sobre el uso de estructuras SUPERPUESTAs para la sincronización, vea Sincronización y entrada y salida superpuestas.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NO_ERROR.

Si la función se usa de forma asincrónica, un valor devuelto de ERROR_IO_PENDING indica que la siguiente solicitud aún no está lista y se recupera más adelante a través de mecanismos de finalización de E/S superpuestos normales.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Valor Significado
ERROR_INVALID_PARAMETER
Uno o varios de los parámetros proporcionados están en un formato inutilizable.
ERROR_HANDLE_EOF
El cuerpo de entidad especificado ya se ha recuperado completamente; en este caso, el valor al que apunta pBytesReceived no es significativo y pBuffer no debe examinarse.
ERROR_DLL_INIT_FAILED
La aplicación que realiza la llamada no llamó a HttpInitialize antes de llamar a esta función.
Otros
Código de error del sistema definido en WinError.h.

Comentarios

Para recuperar un cuerpo de entidad completo, se espera que una aplicación llame a HttpReceiveRequestEntityBody, pasando nuevos búferes hasta que la función devuelva ERROR_HANDLE_EOF. Siempre que un búfer lleno de datos de cuerpo de entidad se copie correctamente y todavía haya más datos de cuerpo de entidad a la espera de recuperarse, la función devuelve NO_ERROR.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado http.h
Library Httpapi.lib
Archivo DLL Httpapi.dll

Consulte también

Funciones de la API de servidor HTTP versión 1.0

Aplicación de ejemplo de servidor HTTP

HTTP_REQUEST

HttpReceiveHttpRequest

HttpSendHttpResponse

HttpSendResponseEntityBody