Partager via


Fonction HttpReceiveRequestEntityBody (http.h)

La fonction HttpReceiveRequestEntityBody reçoit des données de corps d’entité supplémentaires pour une requête HTTP spécifiée.

Syntaxe

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
);

Paramètres

[in] RequestQueueHandle

Handle de la file d’attente de requête à partir de laquelle récupérer les données de corps d’entité spécifiées. Une file d’attente de requêtes est créée et son handle est retourné par un appel à la fonction HttpCreateRequestQueue .

Windows Server 2003 avec SP1 et Windows XP avec SP2 : Le handle de la file d’attente de requête est créé par la fonction HttpCreateHttpHandle .

[in] RequestId

Identificateur de la requête HTTP qui contient le corps de l’entité récupérée. Cette valeur est retournée dans le membre RequestId de la structure HTTP_REQUEST par un appel à la fonction HttpReceiveHttpRequest . Cette valeur ne peut pas être HTTP_NULL_ID.

[in] Flags

Ce paramètre peut être la valeur d’indicateur suivante.

Windows Server 2003 avec SP1 et Windows XP avec SP2 : Ce paramètre est réservé et doit être égal à zéro.

Valeur Signification
HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER
Spécifie que la mémoire tampon sera remplie avec un ou plusieurs corps d’entité, sauf s’il n’y a pas de corps d’entité restant à copier.

[out] EntityBuffer

Pointeur vers une mémoire tampon qui reçoit des données de corps d’entité.

[in] EntityBufferLength

Taille, en octets, de la mémoire tampon pointée vers le paramètre pBuffer .

[out, optional] BytesReturned

facultatif. Pointeur vers une variable qui reçoit la taille, en octets, des données de corps d’entité retournées dans la mémoire tampon pBuffer .

Lorsque vous effectuez un appel asynchrone à l’aide de pOverlapped, définissez pBytesReceived surNULL. Sinon, lorsque pOverlapped a la valeur NULL, pBytesReceived doit contenir une adresse mémoire valide et ne pas avoir la valeur NULL.

[in, optional] Overlapped

Pour les appels asynchrones, définissez pOverlapped pour qu’il pointe vers une structure CHEVAUCHEMENT ; pour les appels synchrones, définissez-le sur NULL.

Un appel synchrone est bloqué jusqu’à ce que les données du corps de l’entité soient récupérées, tandis qu’un appel asynchrone retourne immédiatement ERROR_IO_PENDING et l’application appelante utilise alors les ports d’achèvement GetOverlappedResult ou d’E/S pour déterminer quand l’opération est terminée. Pour plus d’informations sur l’utilisation des structures OVERLAPPED pour la synchronisation, consultez Synchronisation et entrées et sorties qui se chevauchent.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction est utilisée de manière asynchrone, une valeur de retour de ERROR_IO_PENDING indique que la requête suivante n’est pas encore prête et qu’elle est récupérée ultérieurement par le biais de mécanismes d’achèvement d’E/S qui se chevauchent normalement.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Valeur Signification
ERROR_INVALID_PARAMETER
Un ou plusieurs des paramètres fournis sont sous une forme inutilisable.
ERROR_HANDLE_EOF
Le corps d’entité spécifié a déjà été entièrement récupéré ; dans ce cas, la valeur indiquée par pBytesReceived n’est pas significative et pBuffer ne doit pas être examinée.
ERROR_DLL_INIT_FAILED
L’application appelante n’a pas appelé HttpInitialize avant d’appeler cette fonction.
Autres
Code d’erreur système défini dans WinError.h.

Remarques

Pour récupérer l’intégralité d’un corps d’entité, une application doit appeler HttpReceiveRequestEntityBody, en passant de nouvelles mémoires tampons, jusqu’à ce que la fonction retourne ERROR_HANDLE_EOF. Tant qu’une mémoire tampon remplie de données de corps d’entité est correctement copiée et que d’autres données de corps d’entité sont en attente d’être récupérées, la fonction retourne NO_ERROR.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista, Windows XP avec SP2 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête http.h
Bibliothèque Httpapi.lib
DLL Httpapi.dll

Voir aussi

Fonctions API de serveur HTTP version 1.0

Exemple d’application de serveur HTTP

HTTP_REQUEST

HttpReceiveHttpRequest

HttpSendHttpResponse

HttpSendResponseEntityBody