camel-restlet コンポーネントを介して REST エンドポイントを公開するキャメル Web アプリケーションを作成していますが、圧縮された xml 応答の文字エンコーディングに問題があります。
Content-Type と charset をそれぞれ と に手動で設定text/xml
しUTF-8
ました。gzip されたペイロードをクライアントに返すために、Content-Encoding を に設定し、キャメル ルートの最終コンポーネントとしてパターンをgzip
使用しました。<marshal><gzip/></marshal>
ルートから返されたペイロードは、無効な gzip ファイルになります。gzip マーシャルと転送の各段階で Notepad++ を使用してペイロードを検査しました - 前に有効な XML を確認し、ステップ後に有効な gzip されたファイルを<marshal/>
確認しましたが、クライアントによって受信された応答は、restlet コンポーネントによって異なる方法でエンコードされているようです.
通常[US]<
の初期ヘッダーは Notepad++ の有効な gzip ファイルに表示されますが、他の印刷可能な文字の異なる表現と共に、restlet からの応答のように<
エンコードされています。これはクライアントとクライアントの�
両方に返されます- これにより、restlet コンポーネントのデフォルトの文字エンコーディングを削除/変更する必要があると思われます。charset ヘッダーを削除すると、別の、まだ正しくエンコードされていない応答が得られます。これは、私の疑いを裏付けているようです。curl
Accept-Encoding: gzip
restlet がバイナリ データのエンコーディングの変更を引き起こすコンポーネントであると考えるのが正しい場合、どのエンコーディングを設定/削除する必要がありますか?
お時間を割いてお読みいただき、誠にありがとうございました。
中音域