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形式の電文に変換する際は,データ変換アクティビティなどを使用してデコードする必要があります。
-