HttpReceiveRequestEntityBody-Funktion (http.h)
Die HttpReceiveRequestEntityBody-Funktion empfängt zusätzliche Entitätstextdaten für eine angegebene HTTP-Anforderung.
Syntax
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
);
Parameter
[in] RequestQueueHandle
Das Handle für die Anforderungswarteschlange, aus der die angegebenen Entitätskörperdaten abgerufen werden sollen. Eine Anforderungswarteschlange wird erstellt, und ihr Handle wird durch einen Aufruf der HttpCreateRequestQueue-Funktion zurückgegeben.
Windows Server 2003 mit SP1 und Windows XP mit SP2: Das Handle für die Anforderungswarteschlange wird von der HttpCreateHttpHandle-Funktion erstellt.
[in] RequestId
Der Bezeichner der HTTP-Anforderung, die den abgerufenen Entitätstext enthält. Dieser Wert wird im RequestId-Member der HTTP_REQUEST-Struktur durch einen Aufruf der HttpReceiveHttpRequest-Funktion zurückgegeben. Dieser Wert kann nicht HTTP_NULL_ID werden.
[in] Flags
Dieser Parameter kann der folgende Flagwert sein.
Windows Server 2003 mit SP1 und Windows XP mit SP2: Dieser Parameter ist reserviert und muss null sein.
[out] EntityBuffer
Ein Zeiger auf einen Puffer, der Entitätskörperdaten empfängt.
[in] EntityBufferLength
Die Größe des Puffers in Bytes, auf den der pBuffer-Parameter verweist.
[out, optional] BytesReturned
Optional. Ein Zeiger auf eine Variablen, die die Größe der im pBuffer-Puffer zurückgegebenen Entitätskörperdaten in Bytes empfängt.
Wenn Sie einen asynchronen Aufruf mithilfe von pOverlapped ausführen, legen Sie pBytesReceived auf NULL fest. Andernfalls muss pBytesReceived eine gültige Speicheradresse enthalten und nicht auf NULL festgelegt werden, wenn pOverlapped auf NULL festgelegt ist.
[in, optional] Overlapped
Legen Sie bei asynchronen Aufrufen pOverlapped so fest, dass er auf eine OVERLAPPED-Struktur verweist. Legen Sie für synchrone Aufrufe auf NULL fest.
Ein synchroner Aufruf blockiert, bis die Entitätskörperdaten abgerufen wurden, während ein asynchroner Aufruf sofort ERROR_IO_PENDING zurückgibt, und die aufrufende Anwendung verwendet dann GetOverlappedResult - oder E/A-Vervollständigungsports, um zu bestimmen, wann der Vorgang abgeschlossen ist. Weitere Informationen zur Verwendung von OVERLAPPED-Strukturen für die Synchronisierung finden Sie unter Synchronisierung und überlappende Eingabe und Ausgabe.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.
Wenn die Funktion asynchron verwendet wird, gibt der Rückgabewert ERROR_IO_PENDING an, dass die nächste Anforderung noch nicht bereit ist und später über normale überlappende E/A-Vervollständigungsmechanismen abgerufen wird.
Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.
Wert | Bedeutung |
---|---|
|
Mindestens einer der angegebenen Parameter ist in einer nicht verwendbaren Form. |
|
Der angegebene Entitätstext wurde bereits vollständig abgerufen. in diesem Fall ist der Wert, auf den pBytesReceived verweist, nicht aussagekräftig, und pBuffer sollte nicht untersucht werden. |
|
Die aufrufende Anwendung hat httpInitialize vor dem Aufrufen dieser Funktion nicht aufgerufen. |
|
Ein in WinError.h definierter Systemfehlercode . |
Hinweise
Um einen gesamten Entitätstext abzurufen, wird erwartet, dass eine Anwendung HttpReceiveRequestEntityBody aufruft und neue Puffer übergibt, bis die Funktion ERROR_HANDLE_EOF zurückgibt. Solange ein Puffer voller Entitätskörperdaten erfolgreich kopiert wird und noch weitere Entitätskörperdaten auf den Abruf warten, gibt die Funktion NO_ERROR zurück.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP mit SP2 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | http.h |
Bibliothek | Httpapi.lib |
DLL | Httpapi.dll |