Función HttpSendResponseEntityBody (http.h)
La función HttpSendResponseEntityBody envía datos de cuerpo de entidad asociados a una respuesta HTTP.
Sintaxis
HTTPAPI_LINKAGE ULONG HttpSendResponseEntityBody(
[in] HANDLE RequestQueueHandle,
[in] HTTP_REQUEST_ID RequestId,
[in] ULONG Flags,
[in] USHORT EntityChunkCount,
[in] PHTTP_DATA_CHUNK EntityChunks,
[out] PULONG BytesSent,
[in] PVOID Reserved1,
[in] ULONG Reserved2,
[in] LPOVERLAPPED Overlapped,
[in, optional] PHTTP_LOG_DATA LogData
);
Parámetros
[in] RequestQueueHandle
Identificador de la cola de solicitudes desde la que se recuperó la solicitud especificada. Se crea una cola de solicitudes y se devuelve su identificador mediante 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 a la que corresponde esta respuesta. Este valor se devuelve en el miembro RequestId de la estructura HTTP_REQUEST mediante una llamada a la función HttpReceiveHttpRequest . No puede ser HTTP_NULL_ID.
[in] Flags
Parámetro que puede incluir uno de los siguientes valores de marca mutuamente excluyentes.
Marcas | Significado |
---|---|
|
La conexión de red debe desconectarse después de enviar esta respuesta, invalidando las características de conexión persistentes asociadas a la versión de HTTP en uso. Las aplicaciones deben usar esta marca para indicar el final de la entidad en los casos en los que no se usa ni la longitud del contenido ni la codificación fragmentada. |
|
La aplicación envía datos adicionales del cuerpo de la entidad para esta respuesta a través de una o varias llamadas posteriores a HttpSendResponseEntityBody. A continuación, la última llamada establece esta marca en cero. |
|
Esta marca permite almacenar en búfer los datos en el kernel por respuesta.
Una aplicación debe usarla haciendo E/S sincrónica o mediante una aplicación que realiza E/S asincrónica sin más de un envío pendiente a la vez. Las aplicaciones que usan E/S asincrónica que pueden tener más de un envío pendiente a la vez no deben usar esta marca. Cuando se establece esta marca, también se debe usar de forma coherente en las llamadas a la función HttpSendHttpResponse . Windows Server 2003: Esta marca no se admite. Esta marca es nueva para Windows Server 2003 con SP1. |
|
Habilita el algoritmo de nagling TCP solo para este envío.
Windows Vista y versiones posteriores: Esta marca no se admite. |
|
Especifica que para una solicitud de intervalo, se pasa el contenido de la respuesta completa y el autor de la llamada quiere que la API HTTP procese los intervalos de forma adecuada.
Nota Esta marca solo se admite para las respuestas a las solicitudes HTTP GET y ofrece un subconjunto limitado de funcionalidad. Las aplicaciones que requieren procesamiento de rango completo deben realizarse en modo de usuario y no confiar en HTTP.sys. Se desaconseja el uso.
Nota Esta marca es compatible. |
|
Especifica que la solicitud o respuesta no es compatible con HTTP y que todos los bytes posteriores deben tratarse como cuerpo de entidad. Las aplicaciones especifican esta marca cuando acepta una solicitud de actualización de Web Socket e informan a HTTP.sys para tratar los datos de conexión como datos opacos.
Esta marca solo se permite cuando el miembro StatusCode de pHttpResponse es 101, cambiando protocolos. HttpSendResponseEntityBody devuelve ERROR_INVALID_PARAMETER para todos los demás tipos de respuesta HTTP si se usa esta marca. Windows 8 y versiones posteriores: se admite esta marca. |
[in] EntityChunkCount
Número de estructuras de la matriz a las que apunta pEntityChunks. Este recuento no puede superar los 9999.
[in] EntityChunks
Puntero a una matriz de estructuras de HTTP_DATA_CHUNK que se van a enviar como datos del cuerpo de la entidad.
[out] BytesSent
Opcional. Puntero a una variable que recibe el número, en bytes, enviado si la función funciona de forma sincrónica.
Al realizar una llamada asincrónica mediante pOverlapped, establezca pBytesSent enNULL. De lo contrario, cuando pOverlapped se establece en NULL, pBytesSent debe contener una dirección de memoria válida y no establecerse en NULL.
[in] Reserved1
Este parámetro está reservado y debe ser NULL.
[in] Reserved2
Este parámetro está reservado y debe ser cero.
[in] Overlapped
Para las llamadas asincrónicas, establezca pOverlapped para que apunte a una estructura SUPERPUESTA ; para llamadas sincrónicas, establézcalo en NULL.
Una llamada sincrónica se bloquea hasta que se envían todos los datos de respuesta especificados en el parámetro pEntityChunks , mientras que una llamada asincrónica devuelve inmediatamente ERROR_IO_PENDING y la aplicación que realiza la llamada usa los puertos getOverlappedResult o de finalización de E/S 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, consulte Sincronización y entrada y salida superpuestas.
[in, optional] LogData
Puntero a la estructura HTTP_LOG_DATA utilizada para registrar la respuesta. Pase un puntero a la estructura HTTP_LOG_FIELDS_DATA y consértelo a PHTTP_LOG_DATA.
Tenga en cuenta que, incluso cuando el registro está habilitado en un grupo de direcciones URL o en una sesión de servidor, la respuesta no se registrará a menos que la aplicación suministre la estructura de datos de los campos de registro.
Windows Server 2003 y Windows XP con SP2: Este parámetro está reservado y debe ser NULL.
Windows Vista y Windows Server 2008: Este parámetro es nuevo para Windows Vista y Windows Server 2008
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 |
---|---|
|
Uno o varios de los parámetros proporcionados están en forma inutilizable. |
|
Hay una llamada pendiente a HttpSendHttpResponse o HttpSendResponseEntityBody que tiene el mismo RequestId. |
|
Código de error del sistema definido en WinError.h. |
Comentarios
Si no se incluye ningún encabezado de longitud de contenido ni encabezado de codificación transfer en los encabezados de respuesta, la aplicación debe indicar el final de la respuesta cerrando explícitamente la conexión mediante la marca HTTP_SEND_RESPONSE_DISCONNECT .
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 |