WsRequestReply 함수(webservices.h)
요청 메시지를 보내고 상관 관계가 있는 회신 메시지를 받는 데 사용됩니다.
구문
HRESULT WsRequestReply(
[in] WS_CHANNEL *channel,
[in] WS_MESSAGE *requestMessage,
[in] const WS_MESSAGE_DESCRIPTION *requestMessageDescription,
[in] WS_WRITE_OPTION writeOption,
const void *requestBodyValue,
[in] ULONG requestBodyValueSize,
[in] WS_MESSAGE *replyMessage,
[in] const WS_MESSAGE_DESCRIPTION *replyMessageDescription,
[in] WS_READ_OPTION readOption,
[in, optional] WS_HEAP *heap,
void *value,
[in] ULONG valueSize,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
매개 변수
[in] channel
요청-회신 작업을 수행할 채널입니다.
[in] requestMessage
요청을 보내는 데 사용할 메시지 개체입니다.
메시지 개체는 WS_MESSAGE_STATE_EMPTY 또는 WS_MESSAGE_STATE_INITIALIZED 있어야 합니다.
[in] requestMessageDescription
WS_MESSAGE_DESCRIPTION 작업 필드는 요청 메시지의 작업 헤더로 사용됩니다. 작업이 필요하지 않은 경우 이 필드는 NULL 일 수 있습니다.
WS_MESSAGE_DESCRIPTION bodyElementDescription 필드는 요청 메시지의 본문을 serialize하는 데 사용됩니다. 이 필드는 원하는 본문 요소가 없는 경우 NULL 일 수 있습니다. bodyElementDescription에 따라 본문이 serialize되는 방법에 대한 자세한 내용은 WsWriteBody 를 참조하세요.
[in] writeOption
본문 요소가 필요한지 여부 및 값이 할당되는 방식입니다. 자세한 내용은 WS_WRITE_OPTION 참조하세요.
requestBodyValue
요청 개체의 본문에서 serialize할 값에 대한 포인터입니다.
[in] requestBodyValueSize
serialize되는 요청 값의 크기(바이트)입니다.
[in] replyMessage
회신을 받는 데 사용할 메시지 개체입니다.
메시지 개체는 WS_MESSAGE_STATE_EMPTY 있어야 합니다.
[in] replyMessageDescription
WS_MESSAGE_DESCRIPTION 작업 필드는 수신된 회신 메시지의 작업 헤더를 확인하는 데 사용됩니다. 작업이 필요하지 않은 경우 이 필드는 NULL 일 수 있습니다. NULL이면 수신된 메시지의 작업 헤더가 있는 경우 무시됩니다.
WS_MESSAGE_DESCRIPTION bodyElementDescription 필드는 회신 메시지의 본문을 역직렬화하는 데 사용됩니다. 이 필드는 원하는 본문 요소가 없는 경우 NULL 일 수 있습니다. bodyElementDescription에 따라 본문을 역직렬화하는 방법에 대한 자세한 내용은 WsReadBody 를 참조하세요.
[in] readOption
회신 본문 요소가 필요한지 여부와 값을 할당하는 방법입니다. 자세한 내용은 WS_READ_OPTION 및 WsReadBody를 참조하세요.
[in, optional] heap
역직렬화된 회신 본문 값을 할당하는 데 사용되는 힙입니다. 지정된 형식에 힙이 필요하지 않은 경우 이 매개 변수는 NULL일 수 있습니다.
value
본문의 역직렬화된 값을 저장할 위치입니다.
이 매개 변수의 해석은 WS_READ_OPTION 따라 달라집니다.
회신 WS_MESSAGE_DESCRIPTION bodyElementDescription이 NULL인 경우 이 매개 변수는 터치되지 않습니다. 이 경우 매개 변수를 지정할 필요가 없습니다.
[in] valueSize
이 매개 변수의 해석은 WS_READ_OPTION 따라 달라집니다.
[in, optional] asyncContext
함수를 비동기적으로 호출하는 방법 또는 동기적으로 호출하는 경우 NULL 에 대한 정보입니다.
[in, optional] error
함수가 실패할 경우 추가 오류 정보를 저장할 위치를 지정합니다.
반환 값
이 함수는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
회신 메시지에 오류가 포함되었습니다. WsGetErrorProperty를 사용하여 WS_ERROR 오류를 추출할 수 있습니다. |
|
비동기 작업은 아직 보류 중입니다. |
|
작업이 중단되었습니다. |
|
개체의 현재 상태로 인해 작업이 허용되지 않습니다. |
|
원격 엔드포인트가 없거나 위치할 수 없습니다. |
|
원격 엔드포인트에서 액세스가 거부되었습니다. |
|
원격 엔드포인트와의 연결이 종료되었습니다. |
|
원격 엔드포인트에서 요청을 처리할 수 없습니다. |
|
원격 엔드포인트가 현재 이 위치에서 서비스되고 있지 않습니다. |
|
원격 엔드포인트가 오버로드되어 요청을 처리할 수 없습니다. |
|
원격 엔드포인트에 연결할 수 없습니다. |
|
엔드포인트 주소 URL이 잘못되었습니다. |
|
입력 데이터가 예상 형식이 아니거나 예상 값이 없습니다. |
|
할당된 시간 내에 작업이 완료되지 않았습니다. |
|
HTTP 프록시 서버에서 액세스가 거부되었습니다. |
|
HTTP 프록시 서버에서 요청을 처리할 수 없습니다. |
|
할당량을 초과했습니다. |
|
수신된 데이터에 대한 보안 확인에 성공하지 못했습니다. |
|
Windows Web Services 프레임워크에서 보안 작업이 실패했습니다. |
|
서버에서 보안 토큰이 만료되어 거부되었습니다. |
|
HTTP 프록시 서버에는 HTTP 인증 체계 'basic'이 필요합니다. |
|
HTTP 프록시 서버에는 HTTP 인증 체계 '다이제스트'가 필요합니다. |
|
HTTP 프록시 서버에는 HTTP 인증 체계 'negotiate'가 필요합니다. |
|
HTTP 프록시 서버에는 HTTP 인증 체계 'NTLM'이 필요합니다. |
|
원격 엔드포인트에는 HTTP 인증 체계 '기본'이 필요합니다. |
|
원격 엔드포인트에는 HTTP 인증 체계 '다이제스트'가 필요합니다. |
|
원격 엔드포인트에는 HTTP 인증 체계 'negotiate'가 필요합니다. |
|
원격 엔드포인트에는 HTTP 인증 체계 'NTLM'이 필요합니다. |
|
현재 시스템 클록 또는 서명된 파일의 타임스탬프에 대해 확인할 때 필수 인증서가 유효 기간 내에 있지 않습니다. |
|
인증서 CN 이름이 전달된 값과 일치하지 않습니다. |
|
인증서 체인이 처리되었지만 트러스트 공급자가 신뢰하지 않는 루트 인증서에서 종료되었습니다. |
|
인증서가 요청된 사용에 유효하지 않은 경우 |
|
해지 서버가 오프라인 상태이므로 해지 함수가 해지를 확인할 수 없습니다. |
|
메모리가 부족합니다. |
|
하나 이상의 인수가 잘못되었습니다. |
|
이 함수는 위에 나열되지 않은 다른 오류를 반환할 수 있습니다. |
설명
메시지는 WS_ADDRESSING_VERSION 적절하게 상호 연결됩니다. 요청 회신 메시지의 상관 관계에 대한 자세한 내용은 채널 계층 개요 를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | webservices.h |
라이브러리 | WebServices.lib |
DLL | WebServices.dll |