다음을 통해 공유


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이어야 합니다.

의미
HTTP_RECEIVE_REQUEST_ENTITY_BODY_FLAG_FILL_BUFFER
복사할 나머지 엔터티 본문이 없는 한 버퍼가 하나 이상의 엔터티 본문으로 채워지도록 지정합니다.

[out] EntityBuffer

엔터티 본문 데이터를 수신하는 버퍼에 대한 포인터입니다.

[in] EntityBufferLength

pBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.

[out, optional] BytesReturned

선택 사항입니다. pBuffer 버퍼에 반환된 엔터티 본문 데이터의 크기(바이트)를 수신하는 변수에 대한 포인터입니다.

pOverlapped를 사용하여 비동기 호출을 수행하면 pBytesReceived를NULL로 설정합니다. 그렇지 않으면 pOverlappedNULL로 설정된 경우 pBytesReceived 는 유효한 메모리 주소를 포함해야 하며 NULL로 설정되지 않아야 합니다.

[in, optional] Overlapped

비동기 호출의 경우 pOverlappedOVERLAPPED 구조를 가리키도록 설정합니다. 동기 호출의 경우 NULL로 설정합니다.

동기 호출은 엔터티 본문 데이터가 검색될 때까지 차단되는 반면, 비동기 호출은 즉시 ERROR_IO_PENDING 반환하고 호출 애플리케이션은 GetOverlappedResult 또는 I/O 완료 포트를 사용하여 작업이 완료되는 시기를 결정합니다. 동기화에 OVERLAPPED 구조를 사용하는 방법에 대한 자세한 내용은 동기화 및 겹치는 입력 및 출력을 참조하세요.

반환 값

함수가 성공하면 반환 값이 NO_ERROR.

함수를 비동기적으로 사용하는 경우 ERROR_IO_PENDING 반환 값은 다음 요청이 아직 준비되지 않았으며 나중에 일반적인 겹치는 I/O 완료 메커니즘을 통해 검색됨을 나타냅니다.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.

의미
ERROR_INVALID_PARAMETER
제공된 매개 변수 중 하나 이상이 사용할 수 없는 형식입니다.
ERROR_HANDLE_EOF
지정된 엔터티 본문이 이미 완전히 검색되었습니다. 이 경우 pBytesReceived 가 가리키는 값은 의미가 없으며 pBuffer 를 검사해서는 안 됩니다.
ERROR_DLL_INIT_FAILED
호출 애플리케이션이 이 함수를 호출하기 전에 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

추가 정보

HTTP Server API 버전 1.0 함수

HTTP 서버 샘플 애플리케이션

HTTP_REQUEST

HttpReceiveHttpRequest

HttpSendHttpResponse

HttpSendResponseEntityBody