2017-05-16 27 views
0

問題を修正しようとしています。 http応答ヘッダー:Transfer-Encoding: chunked(spring-boot、cxf、tomcat)Content-LengthとTransfer-Encoding:チャンク?

私たちはspring-boot + embedded-tomcatにCXF-SOAP Webサービスを持っています。

SOAP応答はContent-Lengthヘッダーを取得し、Transfer-Encoding .... は正常ではありません。

残念ながら、 という従来のクライアントハッキングがあるのはTransfer-Encoding: chunkedとなり、Content-Lengthとは動作しないようです。

道はありますかサーバアプリはTransfer-Encoding: chunkedと応答しますか?

どのレスポンス形式が生成されるかを正確に決定するものは何ですか?

は、それが何らかの形で設定可能ですか?応答でたBufferSizeを設定することで

答えて

1

response.setBufferSize()は応答サイズのContent-Lengthヘッダーを設定します。応答サイズがbufferSizeを超えると、Transfer-Encoding:Chunkedにフォールバックされます。バッファサイズは適切な値に設定する必要があります。これを高い値に設定すると、すべての応答がフラッシュされる前にメモリにバッファされます。したがって、値は楽観的なサイズに設定する必要があります。デフォルトのTomcatのバッファサイズで

が8K

その他のオプションに設定されています:あなたはあなたのサービスのために、あなたがしたい、そのセットヘッダに応答フィルタを追加することができます。

1

リクエストhttpヘッダーによっては、サーバーアプリケーションが応答します。

リクエストHTTPヘッダーが含まれている場合:

Accept-Encoding: chunked 

とだけchunked、サーバアプリは、ヘッダとコンテンツTransfer-Encoding: chunkedで応答します。

クライアントの機能を示す正しいhttp要求ができない場合は、逆プロキシを追加して、Accept-Encoding: chunkedヘッダーを変更または追加して要求を変更します。

関連する問題