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 字段可用來串行化要求訊息的本文。 如果不需要 body 元素,此字段可能是 NULL 。 如需主體如何根據 bodyElementDescription 串行化的資訊,請參閱 WsWriteBody 。
[in] writeOption
本文專案是否為必要專案,以及如何配置值。 如需詳細資訊 ,請參閱WS_WRITE_OPTION 。
requestBodyValue
值指標,以在要求對象的主體中串行化。
[in] requestBodyValueSize
要串行化的要求值大小,以位元組為單位。
[in] replyMessage
用來接收回復的訊息物件。
訊息物件應位於 WS_MESSAGE_STATE_EMPTY中。
[in] replyMessageDescription
WS_MESSAGE_DESCRIPTION的動作欄位是用來驗證所接收回覆訊息的動作標頭。 如果不需要任何動作,此欄位可能是 NULL 。 如果 為 NULL,則如果存在,則會忽略所接收訊息的動作標頭。
WS_MESSAGE_DESCRIPTION的 bodyElementDescription 字段是用來還原串行化回復訊息的本文。 如果不需要 body 元素,此字段可能是 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
指定函式失敗時應該儲存其他錯誤資訊的位置。
傳回值
此函式可以傳回其中一個值。
傳回碼 | Description |
---|---|
|
回復訊息包含錯誤。 錯誤可以使用 WsGetErrorProperty 從WS_ERROR擷取。 |
|
異步操作仍然擱置中。 |
|
作業已中止。 |
|
由於物件的目前狀態,不允許此作業。 |
|
遠端端點不存在或無法找到。 |
|
遠端端點拒絕存取。 |
|
已終止與遠端端點的連線。 |
|
遠端端點無法處理要求。 |
|
遠端端端點目前不在此位置的服務中。 |
|
遠端端點因為多載而無法處理要求。 |
|
無法連線到遠端端端點。 |
|
端點位址 URL 無效。 |
|
輸入數據的格式不正確,或沒有預期的值。 |
|
作業未在配置的時間內完成。 |
|
HTTP Proxy 伺服器拒絕存取。 |
|
HTTP Proxy 伺服器無法處理要求。 |
|
超過配額。 |
|
已接收數據的安全性驗證未成功。 |
|
Windows Web 服務架構中的安全性作業失敗。 |
|
伺服器因為安全性令牌已過期而遭到拒絕。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'basic'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'digest'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'negotiate'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'NTLM'。 |
|
遠端端端點需要 HTTP 驗證配置 'basic'。 |
|
遠端端端點需要 HTTP 驗證配置 'digest'。 |
|
遠端端點需要 HTTP 驗證配置 'negotiate'。 |
|
遠端端端點需要 HTTP 驗證配置 'NTLM'。 |
|
根據目前系統時鐘或已簽署檔案中的時間戳進行驗證時,必要的憑證不在其有效期間內。 |
|
憑證 CN 名稱不符合傳遞的值。 |
|
憑證鏈結已處理,但在信任提供者不信任的跟證書中終止。 |
|
此憑證不適用於要求的使用方式。 |
|
因為伺服器已離線,所以撤銷功能無法核對撤銷狀況。 |
|
記憶體不足。 |
|
一或多個引數無效。 |
|
此函式可能會傳回上面未列出的其他錯誤。 |
備註
訊息會適當地與 WS_ADDRESSING_VERSION相互關聯。 如需與要求回復訊息相互關聯的詳細資訊,請參閱 通道層 概觀。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | webservices.h |
程式庫 | WebServices.lib |
Dll | WebServices.dll |