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


структура WS_HTTP_MESSAGE_MAPPING (webservices.h)

Указывает сведения о том, как HTTP-запрос или ответ должны быть представлены в объекте сообщения.

Синтаксис

typedef struct _WS_HTTP_MESSAGE_MAPPING {
  ULONG                  requestMappingOptions;
  ULONG                  responseMappingOptions;
  WS_HTTP_HEADER_MAPPING **requestHeaderMappings;
  ULONG                  requestHeaderMappingCount;
  WS_HTTP_HEADER_MAPPING **responseHeaderMappings;
  ULONG                  responseHeaderMappingCount;
} WS_HTTP_MESSAGE_MAPPING;

Члены

requestMappingOptions

Параметры, управляющие тем, как сведения в HTTP-запросе сопоставляются с объектом сообщения.

responseMappingOptions

Параметры, управляющие способом сопоставления сведений в HTTP-ответе с объектом сообщения.

requestHeaderMappings

Массив указателей на сопоставления, которые описывают, какие заголовки HTTP сопоставляются с заголовками и из них в объекте сообщения для HTTP-запроса. Указатели в массиве могут не иметь значения NULL.

requestHeaderMappingCount

Количество элементов в массиве requestHeaderMappings.

responseHeaderMappings

Массив указателей на сопоставления, которые описывают, какие заголовки HTTP сопоставляются с заголовками в объекте сообщения для HTTP-ответа. Указатели в массиве могут не иметь значения NULL.

responseHeaderMappingCount

Количество элементов в массиве responseHeaderMappings.

Комментарии

Сообщение может содержать дополнительные сведения, относящиеся к транспорту, которые не являются частью конверта сообщения. Эти сведения, относящиеся к транспорту, могут предоставляться программным способом в виде заголовков объекта сообщения.
Эти заголовки называются сопоставленными заголовками.

Каждый сопоставленный заголовок хранится в заголовках сообщения в виде обычного элемента заголовка (см. WS_MESSAGE_PROPERTY_HEADER_BUFFER). Пустое пространство имен XML ("") используется для сопоставленных заголовков.

Эта структура определяет, как происходит сопоставление между HTTP-запросом или ответом и сопоставленными заголовками объекта сообщения. Структуру можно указать с помощью свойства WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING .

На следующей схеме показано, как заголовки HTTP сопоставляются с заголовками сообщения.

Схема, показывающая объект Message с выделенным элементом MyHeader и стрелкой, указывающей на строку MyHeader в HTTP-запросе.

При получении сообщения HTTP-канал автоматически копирует указанные заголовки HTTP из запроса или ответа в заголовки объекта сообщения. Затем приложение может использовать WsGetMappedHeader для получения значений сопоставленных заголовков.

Перед отправкой сообщения приложение может добавить сопоставленные заголовки в объект сообщения с помощью WsAddMappedHeader. При отправке сообщения HTTP-канал автоматически удаляет указанные заголовки из заголовков объекта сообщения (чтобы они не отображались в конверте) и добавляет их в качестве заголовков HTTP-запросов или ответов.

Канал HTTP будет выполнять это сопоставление только для заголовков HTTP, указанных в полях requestHeaderMappings или responseHeaderMappings. WS_HTTP_HEADER_MAPPING используется для указания каждого заголовка и содержит инструкции по преобразованию заголовка сообщения в заголовок HTTP или из нее.

Другие сведения в HTTP-запросе или ответе, которые не соответствуют заголовкам HTTP, можно сопоставить с заголовком объекта сообщения, задав requestMappingOptions или responseMappingOptions. Затем эти сопоставленные значения можно извлечь с помощью WsGetMappedHeader.
Сведения о том, какие сведения можно сопоставить с заголовками сообщений, см. в разделе WS_HTTP_REQUEST_MAPPING_OPTIONS или WS_HTTP_RESPONSE_MAPPING_OPTIONS .

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть webservices.h