10.17 HTTPリクエストボディのgzip圧縮
HTTPリクエストボディをgzip圧縮すると,WebサービスクライアントとWebコンテナ間のHTTPリクエスト通信に掛かる時間を削減できます。HTTPリクエストボディを圧縮するには,Webサービスクライアントからリクエストメッセージを送信する際に,gzip形式で圧縮されたHTTPリクエストボディを送信することを示すHTTPヘッダを付ける必要があります。クライアントアプリケーションでHTTPヘッダを付ける処理を実装してください。
クライアントアプリケーションでの実装例を次に示します。
Map<String, List<String>> httpHeaders =
( Map<String, List<String>> )context.get( MessageContext.HTTP_REQUEST_HEADERS );
if( null == httpHeaders ){
httpHeaders = new HashMap<String, List<String>>();
}
List<String> contentEncondings = httpHeaders.get( "Content-Encoding" );
if( null == contentEncondings ){
contentEncondings = new ArrayList<String>();
}
contentEncondings.add( "gzip" );
httpHeaders.put( "Content-Encoding", contentEncondings );
context.put( MessageContext.HTTP_REQUEST_HEADERS, httpHeaders );