このトピックでは、HTTP メッセージ・フローを使用して Web サービスと対話する場合に役立つ情報を提供します。 このトピックは、続く Web サービスのシナリオ セクションと共に読むと便利です。
Compute ノードにある特定のヘッダー (他のすべての設定値をオーバーライドする出力メッセージの HTTPReplyHeader セクションにある X-Original-HTTP-Status-Code) で返信状況も設定することができますが、このためには LocalEnvironment の内容を使用することをお勧めします。
たとえば、(ブローカーによる既存の Web サービスの呼び出し に示されているように) 既存の WebSphere MQ アプリケーションと 対話する一対のメッセージ・フローを設計する場合、この値を要求フローに保管して応答フローに復元することにより、その応答を正しいクライアントが受け取ることを保証できます。 そうする場合、データを変更してはならず、データを BLOB として保存する必要があります。
HTTPReply ノードは、LocalEnvironment からこの値を抽出し、 特定のクライアントに送られるように、返信をセットアップします。
HTTPInput ノードと HTTPReply ノードの両方が含まれているメッセージ・フローを設計する場合、 値は HTTPInput ノードによって LocalEnvironment 内に設定されますが、 HTTPReply ノードはそれを使用しません。 したがって、メッセージ・フローが同じフローに両方のノードおよび Compute ノードを含んでいる場合、 メッセージ・ツリーのどのコンポーネントが Compute ノード (「Compute モード」 プロパティー)によって 入力メッセージから出力メッセージにコピーされるかを指定するとき、LocalEnvironment ツリーを含む必要はありません。
Compute ノードにある要求メッセージ (他のすべての設定値をオーバーライドする)の HTTPRequestHeader セクションにある特定のヘッダー X-Original-HTTP-URL で要求 URL も設定することができますが、 このためには LocalEnvironment の内容を使用することをお勧めします。
HTTPReply ノードは常に Content-Length ヘッダーを再書き込みし (「入力または応答からデフォルト HTTP ヘッダーを生成」チェック・ボックスのチェックをクリアにした場合でさえ)、 内容が正しいことを保証します。
他のすべてのヘッダーは HTTPResponseHeader からコピーされます。 この後に、Content-Type ヘッダーがない場合、text/xml;charset=utf-8 の値とともに追加されます。
HTTPReplyHeader セクションが、HTTPReply ノードによって受け取られるメッセージ内に存在し、 HTTPReply ノードの Output ターミナルが接続されている場合、 HTTPReplyHeader セクションは任意の変更された値または追加された値で更新されます。
HTTPRequest ノードは常に Content-Length ヘッダーを再書き込みし (「入力からデフォルト HTTP ヘッダーを生成」チェック・ボックスのチェックをクリアにした場合でさえ)、 内容が正しいことを保証します。
以下を除くすべてのヘッダーは、HTTPInputHeader からコピーされます。
いくつかのヘッダーは、着信する HTTPRequest または HTTPInput ヘッダー内で検出されない場合、 デフォルト値で生成されます。
ノードによって受け取られるメッセージの HTTPRequestHeader にある任意のヘッダーは、 同じメッセージの HTTPInputHeader にもある同じ名前のヘッダーをオーバーライドします。 受け取ったメッセージに HTTPRequestHeader が存在する場合、 HTTPRequestHeader は任意の変更された値または追加された値で更新されます。