webservices.h) (WS_HTTP_MESSAGE_MAPPING 结构

指定有关如何在消息对象中表示 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 元素,箭头指向 HTTP 请求中的 MyHeader 行。

收到消息时,HTTP 通道会自动将指定的 HTTP 标头从请求或响应复制到消息对象的标头。 然后,应用程序可以使用 WsGetMappedHeader 获取映射标头的值。

在发送消息之前,应用程序可以使用 WsAddMappedHeader 将映射标头添加到消息对象。 发送消息时,HTTP 通道会自动从消息对象 (的标头中删除指定的标头,使它们不会显示在信封) 内,并将它们添加为 HTTP 请求或响应标头。

HTTP 通道将仅对 requestHeaderMappings 或 responseHeaderMappings 字段中指定的 HTTP 标头执行此映射。 WS_HTTP_HEADER_MAPPING用于指定每个标头,并包含有关如何向/从 HTTP 标头转换消息头的说明。

HTTP 请求或响应中与 HTTP 标头不对应的其他信息可以通过设置 requestMappingOptions 或 responseMappingOptions 映射到消息对象的标头中。 然后,可以使用 WsGetMappedHeader 提取这些映射值。
有关哪些信息可以映射到邮件头的信息,请参阅 WS_HTTP_REQUEST_MAPPING_OPTIONSWS_HTTP_RESPONSE_MAPPING_OPTIONS

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 webservices.h