HttpReceiveRequestEntityBody 함수(http.h)
HttpReceiveRequestEntityBody 함수는 지정된 HTTP 요청에 대한 추가 엔터티 본문 데이터를 받습니다.
구문
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
);
매개 변수
[in] RequestQueueHandle
지정된 엔터티 본문 데이터를 검색할 요청 큐에 대한 핸들입니다. 요청 큐가 생성되고 HttpCreateRequestQueue 함수에 대한 호출에서 해당 핸들이 반환됩니다.
WINDOWS Server 2003 SP1 및 Windows XP SP2: 요청 큐에 대한 핸들은 HttpCreateHttpHandle 함수에 의해 만들어집니다.
[in] RequestId
검색된 엔터티 본문을 포함하는 HTTP 요청의 식별자입니다. 이 값은 httpReceiveHttpRequest 함수를 호출하여 HTTP_REQUEST 구조체의 RequestId 멤버에 반환됩니다. 이 값은 HTTP_NULL_ID 수 없습니다.
[in] Flags
이 매개 변수는 다음 플래그 값일 수 있습니다.
WINDOWS Server 2003 SP1 및 Windows XP SP2: 이 매개 변수는 예약되어 있으며 0이어야 합니다.
값 | 의미 |
---|---|
|
복사할 나머지 엔터티 본문이 없는 한 버퍼가 하나 이상의 엔터티 본문으로 채워지도록 지정합니다. |
[out] EntityBuffer
엔터티 본문 데이터를 수신하는 버퍼에 대한 포인터입니다.
[in] EntityBufferLength
pBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.
[out, optional] BytesReturned
선택 사항입니다. pBuffer 버퍼에 반환된 엔터티 본문 데이터의 크기(바이트)를 수신하는 변수에 대한 포인터입니다.
pOverlapped를 사용하여 비동기 호출을 수행하면 pBytesReceived를NULL로 설정합니다. 그렇지 않으면 pOverlapped 가 NULL로 설정된 경우 pBytesReceived 는 유효한 메모리 주소를 포함해야 하며 NULL로 설정되지 않아야 합니다.
[in, optional] Overlapped
비동기 호출의 경우 pOverlapped 를 OVERLAPPED 구조를 가리키도록 설정합니다. 동기 호출의 경우 NULL로 설정합니다.
동기 호출은 엔터티 본문 데이터가 검색될 때까지 차단되는 반면, 비동기 호출은 즉시 ERROR_IO_PENDING 반환하고 호출 애플리케이션은 GetOverlappedResult 또는 I/O 완료 포트를 사용하여 작업이 완료되는 시기를 결정합니다. 동기화에 OVERLAPPED 구조를 사용하는 방법에 대한 자세한 내용은 동기화 및 겹치는 입력 및 출력을 참조하세요.
반환 값
함수가 성공하면 반환 값이 NO_ERROR.
함수를 비동기적으로 사용하는 경우 ERROR_IO_PENDING 반환 값은 다음 요청이 아직 준비되지 않았으며 나중에 일반적인 겹치는 I/O 완료 메커니즘을 통해 검색됨을 나타냅니다.
함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.
값 | 의미 |
---|---|
|
제공된 매개 변수 중 하나 이상이 사용할 수 없는 형식입니다. |
|
지정된 엔터티 본문이 이미 완전히 검색되었습니다. 이 경우 pBytesReceived 가 가리키는 값은 의미가 없으며 pBuffer 를 검사해서는 안 됩니다. |
|
호출 애플리케이션이 이 함수를 호출하기 전에 HttpInitialize를 호출하지 않았습니다. |
|
WinError.h에 정의된 시스템 오류 코드 입니다. |
설명
전체 엔터티 본문을 검색하려면 함수가 ERROR_HANDLE_EOF 반환할 때까지 애플리케이션에서 HttpReceiveRequestEntityBody를 호출하여 새 버퍼를 전달해야 합니다. 엔터티 본문 데이터로 가득 찬 버퍼가 성공적으로 복사되고 더 많은 엔터티 본문 데이터가 검색되기를 기다리는 한 함수는 NO_ERROR 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista, WINDOWS XP SP2 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | http.h |
라이브러리 | Httpapi.lib |
DLL | Httpapi.dll |