本主题提供使用 HTTP 消息流与 Web service 交互时可能有用的信息。您可能会发现将它与后续的 Web service 方案部分结合在一起阅读很有用。
例如,如果您设计一对消息流,与现有的 WebSphere MQ 应用程序交互(如代理调用现有的 Web service 中所述),则可以将此值保存在在请求流中,并在应答流中复原它来确保正确的客户机接收应答。如果这样做,则不得更改数据,且必须将数据作为 BLOB 保留。
HTTPReply 节点从 LocalEnvironment 抽取此值并设置应答,以便可以将它发送到特定的客户机。
如果您设计同时包含 HTTPInput 和 HTTPReply 节点的消息流,则该值将被 HTTPInput 节点设置到 LocalEnvironment 中,但 HTTPReply 节点不使用它。因此,如果您的消息流同时包含这两个节点并且在同一个流中包含 Compute 节点,则当您指定 Compute 节点将消息树的哪些组件从输入消息复制到输出消息(计算方式属性)时,无需包含 LocalEnvironment 树。
尽管您还可以在 Compute 节点中请求消息 HTTPRequestHeader 部分中的特殊头 X-Original-HTTP-URL 里设置请求 URL(将覆盖所有其他设置),但针对此用途,还是建议您使用 LocalEnvironment 内容。
CALL CopyMessageHeaders(); SET OutputRoot.HTTPReplyHeader."Content-Type" = 'text/xml'; SET OutputRoot.XMLNS = InputRoot.XMLNS;
在 Content-Type 的特定情况中,除非您正在 MIME 域中工作,否则不要使用 ContentType 属性设置该头。ContentType 属性专用于设置 MIME 中使用的 Content-Type 的值。
如果在 HTTPReply 节点收到的消息中存在 HTTPReplyHeader 部分,并且连接了 HTTPReply 节点的 Output 终端,则将以任何更改或添加的值更新 HTTPReplyHeader 部分。
CALL CopyMessageHeaders(); SET OutputRoot.HTTPRequestHeader."Content-Type" = 'text/xml'; SET OutputRoot.XMLNS = InputRoot.XMLNS;在 Content-Type 的特定情况中,除非您正在 MIME 域中工作,否则不要使用 ContentType 属性设置该头。ContentType 属性专用于设置 MIME 中使用的 Content-Type 的值。
如果在收到的消息中存在 HTTPRequestHeader,则将以任何更改或添加的值更新 HTTPRequestHeader。