Функция 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
Объект сообщения, используемый для отправки запроса.
Объект message должен находиться в WS_MESSAGE_STATE_EMPTY или WS_MESSAGE_STATE_INITIALIZED.
[in] requestMessageDescription
Поле действия WS_MESSAGE_DESCRIPTION используется в качестве заголовка действия для сообщения запроса. Это поле может иметь значение NULL , если никаких действий не требуется.
Поле bodyElementDescription WS_MESSAGE_DESCRIPTION используется для сериализации текста сообщения запроса. Это поле может иметь значение NULL , если элемент body не является требуемым. Сведения о сериализации тела в соответствии с bodyElementDescription см. в разделе WsWriteBody .
[in] writeOption
Является ли элемент body обязательным и как выделяется значение. Дополнительные сведения см. в разделе WS_WRITE_OPTION .
requestBodyValue
Указатель на значение для сериализации в теле объекта запроса.
[in] requestBodyValueSize
Размер сериализуемого значения запроса в байтах.
[in] replyMessage
Объект сообщения, используемый для получения ответа.
Объект message должен находиться в WS_MESSAGE_STATE_EMPTY.
[in] replyMessageDescription
Поле действия WS_MESSAGE_DESCRIPTION используется для проверки заголовка действия полученного ответного сообщения. Это поле может иметь значение NULL , если никаких действий не требуется. Если значение РАВНО NULL, заголовок действия полученного сообщения игнорируется при его наличии.
Поле bodyElementDescription WS_MESSAGE_DESCRIPTION используется для десериализации текста ответного сообщения. Это поле может иметь значение NULL , если элемент body не является требуемым. Сведения о десериализации тела в соответствии с bodyElementDescription см. в разделе WsReadBody .
[in] readOption
Требуется ли элемент текста ответа и как выделить значение. Дополнительные сведения см. в разделах WS_READ_OPTION и WsReadBody.
[in, optional] heap
Куча, используемая для выделения десериализованных значений текста ответа. Если куча не требуется для заданного типа, этот параметр может иметь значение NULL.
value
Место хранения десериализованных значений текста.
Интерпретация этого параметра зависит от WS_READ_OPTION.
Если bodyElementDescription WS_MESSAGE_DESCRIPTION ответа имеет значение NULL, этот параметр не касается. В этом случае указывать параметр не нужно.
[in] valueSize
Интерпретация этого параметра зависит от WS_READ_OPTION.
[in, optional] asyncContext
Сведения об асинхронном вызове функции или значении NULL при синхронном вызове.
[in, optional] error
Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.
Возвращаемое значение
Эта функция может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Ответное сообщение содержит ошибку. Ошибку можно извлечь из WS_ERROR с помощью WsGetErrorProperty. |
|
Асинхронная операция по-прежнему находится в состоянии ожидания. |
|
Операция была прервана. |
|
Операция не разрешена из-за текущего состояния объекта . |
|
Удаленная конечная точка не существует или не может быть найдена. |
|
Удаленная конечная точка запретила доступ. |
|
Подключение к удаленной конечной точке было прервано. |
|
Удаленной конечной точке не удалось обработать запрос. |
|
Удаленная конечная точка в настоящее время не обслуживается в этом расположении. |
|
Удаленная конечная точка не может обработать запрос из-за перегрузки. |
|
Удаленная конечная точка недоступна. |
|
Недопустимый URL-адрес конечной точки. |
|
Входные данные не были в ожидаемом формате или не имели ожидаемого значения. |
|
Операция не была завершена в отведенное время. |
|
Прокси-сервер HTTP отказал в доступе. |
|
Прокси-серверу HTTP не удалось обработать запрос. |
|
Превышена квота. |
|
Проверка безопасности не прошла успешно для полученных данных. |
|
Сбой операции безопасности в платформе веб-служб Windows. |
|
Маркер безопасности был отклонен сервером, так как срок его действия истек. |
|
Для прокси-сервера HTTP требуется базовая схема проверки подлинности HTTP. |
|
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP "digest". |
|
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP negotiate. |
|
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP NTLM. |
|
Для удаленной конечной точки требуется базовая схема проверки подлинности HTTP. |
|
Для удаленной конечной точки требуется схема проверки подлинности HTTP "digest". |
|
Для удаленной конечной точки требуется схема проверки подлинности HTTP negotiate. |
|
Для удаленной конечной точки требуется схема проверки подлинности HTTP NTLM. |
|
При проверке на соответствие текущим системным часам или метке времени в подписанном файле обязательный сертификат не является сроком действия. |
|
Имя cn certificates не соответствует переданное значение. |
|
Цепочка сертификатов обрабатывается, но завершается в корневом сертификате, который не является доверенным поставщиком доверия. |
|
Сертификат не действителен для запрошенного применения. |
|
Функция отзыва не смогла проверить отзыв, потому что сервер отзыва был отключен. |
|
Не хватает памяти. |
|
Один или несколько аргументов являются недопустимыми. |
|
Эта функция может возвращать другие ошибки, не перечисленные выше. |
Комментарии
Сообщения сопоставляются соответствующим образом с WS_ADDRESSING_VERSION. Дополнительные сведения о сопоставлении сообщений ответа на запросы см. в разделе Общие сведения об уровне канала.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | webservices.h |
Библиотека | WebServices.lib |
DLL | WebServices.dll |