Поделиться через


Функция WsSendMessage (webservices.h)

Отправка сообщения в канал с помощью сериализации для записи элемента body.

Синтаксис

HRESULT WsSendMessage(
  [in]           WS_CHANNEL                   *channel,
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_MESSAGE_DESCRIPTION *messageDescription,
  [in]           WS_WRITE_OPTION              writeOption,
                 const void                   *bodyValue,
  [in]           ULONG                        bodyValueSize,
  [in, optional] const WS_ASYNC_CONTEXT       *asyncContext,
  [in, optional] WS_ERROR                     *error
);

Параметры

[in] channel

Канал для отправки сообщения.

[in] message

Объект сообщения, используемый для отправки.

Объект message должен находиться в WS_MESSAGE_STATE_EMPTY или WS_MESSAGE_STATE_INITIALIZED.

[in] messageDescription

Поле действия WS_MESSAGE_DESCRIPTION используется в качестве заголовка действия для сообщения. Если никаких действий не требуется, это поле может иметь значение NULL .

Поле bodyElementDescription WS_MESSAGE_DESCRIPTION используется для сериализации текста сообщения. Это поле может иметь значение NULL , если не нужно использовать элемент body. Сведения о том, как bodyElementDescription используется для сериализации значения, см. в разделе WsWriteBody .

[in] writeOption

Является ли элемент body обязательным и каким образом выделяется значение. Используется только в том случае, если требуется элемент body. Дополнительные сведения см . в разделе WS_WRITE_OPTION и WsWriteBody.

bodyValue

Значение для сериализации в тексте сообщения.

[in] bodyValueSize

Размер сериализуемого значения в байтах.

[in, optional] asyncContext

Сведения о том, как вызвать функцию асинхронно или null при синхронном вызове.

[in, optional] error

Указывает, где должны храниться дополнительные сведения об ошибке в случае сбоя функции.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
WS_S_ASYNC
Асинхронная операция по-прежнему находится в состоянии ожидания.
WS_E_OPERATION_ABORTED
Операция была прервана.
WS_E_INVALID_OPERATION
Операция не разрешена из-за текущего состояния объекта .
WS_E_ENDPOINT_NOT_FOUND
Удаленная конечная точка не существует или не может быть найдена.
WS_E_ENDPOINT_ACCESS_DENIED
Удаленная конечная точка запретила доступ.
WS_E_ENDPOINT_DISCONNECTED
Подключение к удаленной конечной точке было прервано.
WS_E_ENDPOINT_FAILURE
Удаленной конечной точке не удалось обработать запрос.
WS_E_ENDPOINT_NOT_AVAILABLE
Удаленная конечная точка в настоящее время не работает в этом расположении.
WS_E_ENDPOINT_TOO_BUSY
Удаленная конечная точка не может обработать запрос из-за перегрузки.
WS_E_ENDPOINT_UNREACHABLE
Удаленная конечная точка недоступна.
WS_E_INVALID_ENDPOINT_URL
Недопустимый URL-адрес конечной точки.
WS_E_INVALID_FORMAT
Входные данные не были в ожидаемом формате или не имели ожидаемого значения.
WS_E_OPERATION_TIMED_OUT
Операция не была завершена в отведенное время.
WS_E_PROXY_ACCESS_DENIED
Прокси-сервер HTTP отказал в доступе.
WS_E_PROXY_FAILURE
Прокси-серверу HTTP не удалось обработать запрос.
WS_E_QUOTA_EXCEEDED
Превышена квота.
WS_E_SECURITY_VERIFICATION_FAILURE
Проверка безопасности не прошла успешно для полученных данных.
WS_E_SECURITY_SYSTEM_FAILURE
Сбой операции безопасности на платформе веб-служб Windows.
WS_E_SECURITY_TOKEN_EXPIRED
Маркер безопасности был отклонен сервером, так как срок его действия истек.
WS_E_PROXY_REQUIRES_BASIC_AUTH
Для прокси-сервера HTTP требуется базовая схема проверки подлинности HTTP.
WS_E_PROXY_REQUIRES_DIGEST_AUTH
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP "digest".
WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP "negotiate".
WS_E_PROXY_REQUIRES_NTLM_AUTH
Для прокси-сервера HTTP требуется схема проверки подлинности HTTP NTLM.
WS_E_SERVER_REQUIRES_BASIC_AUTH
Для удаленной конечной точки требуется базовая схема проверки подлинности HTTP.
WS_E_SERVER_REQUIRES_DIGEST_AUTH
Для удаленной конечной точки требуется схема проверки подлинности HTTP "дайджест".
WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH
Для удаленной конечной точки требуется схема проверки подлинности HTTP "negotiate".
WS_E_SERVER_REQUIRES_NTLM_AUTH
Для удаленной конечной точки требуется схема проверки подлинности HTTP NTLM.
CERT_E_EXPIRED
При проверке по текущим системным часам или метке времени в подписанном файле обязательный сертификат не является сроком действия.
CERT_E_CN_NO_MATCH
Cn-имя сертификатов не совпадает с переданным значением.
CERT_E_UNTRUSTEDROOT
Цепочка сертификатов обработана, но завершена в корневом сертификате, который не является доверенным поставщиком доверия.
CERT_E_WRONG_USAGE
Сертификат не действителен для запрошенного применения.
CRYPT_E_REVOCATION_OFFLINE
Функция отзыва не смогла проверить отзыв, потому что сервер отзыва был отключен.
E_OUTOFMEMORY
Не хватает памяти.
E_INVALIDARG
Один или несколько аргументов недопустимы.
Другие ошибки
Эта функция может возвращать другие ошибки, не перечисленные выше.

Комментарии

Чтобы включить пользовательские заголовки в сообщение, инициализируйте сообщение WsInitializeMessageWS_BLANK_MESSAGE а затем добавьте заголовки с помощью WsAddCustomHeader перед вызовом этой функции.

Требования

   
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header webservices.h
Библиотека WebServices.lib
DLL WebServices.dll