Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 解説


2.14.7 HTTPリクエストとHTTPレスポンスのエンコーディング/デコーディング

HTTPリクエストとHTTPレスポンスのエンコーディングおよびデコーディングの処理について説明します。

HTTPリクエスト時,およびHTTPレスポンス時に使用される文字コードを次に示します。

HTTPリクエスト時

クエリ文字列およびメッセージボディをデコーディングするための文字コードは,次の方法で指定できます。

  • HTTPリクエストヘッダのContent-Typeヘッダのcharset属性で指定する方法

  • HTTP受付定義ファイルのhttprecp.http.charsetプロパティで指定する方法

HTTPリクエストヘッダとHTTP受付定義ファイルの両方で指定した場合,HTTPリクエストヘッダの指定が優先されます。

HTTPレスポンス時

メッセージボディのエンコーディングに使用される文字コードについては,「2.14.5(2)(a) Content-Typeとcharset」を参照してください。

注意事項
  • URLのデコードとメッセージボディのデコードには同じ文字コードが使用されます。

  • テキストデータとして利用する応答電文(ボディ)のデータは,XML宣言タグのencoding属性で設定した文字コードが,HTTPレスポンスボディとHTTPレスポンスヘッダに設定される文字コードと同じものになります。

  • 次の場合,HTTPヘッダの値はユーザがURLエンコーディングする必要があります。

    ・日本語が含まれるHTTPリクエストヘッダをHTTPクライアントからHTTP受付に送信する場合

    ・応答電文(ヘッダ)に日本語のHTTPレスポンスヘッダが含まれる場合

    ・HTTPレスポンスヘッダ定義ファイルの値に日本語のHTTPレスポンスヘッダが含まれる場合

  • HTTP受付は,HTTPクライアントからのHTTPリクエストをビジネスプロセスに渡すときに,HTTPヘッダの値をエンコードおよびデコードしません。また,ビジネスプロセスからHTTPクライアントに応答を返すときも,HTTPヘッダの値をエンコードおよびデコードしません。

  • パススルーモードの場合,送信する要求電文のXML宣言タグのencoding属性には,必ず「UTF-8」を指定してください。

  • バイナリデータから生成したバイナリ形式または任意形式(any形式)の要求電文をXML形式の電文に変換する際は,データ変換アクティビティなどを使用してデコードする必要があります。