2017-11-06 10 views
1

GETメソッドのContent-Typeの設定にApache Camel-Httpコンポーネントを使用してデータが入力されていません。GETメソッドのコンテンツタイプにデータが入力されない

exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "application/json"); 

POSTメソッドを使用する場合も同じです。

メソッドGETの本文がないことを理解してください。奇妙なことに、本文が空の文字列( "")に設定されている場合、Content-Typeは渡されていますが、メソッドの型もPOSTに変わります。

exchange.getIn().setBody(""); 

2.13.1は現在使用しているCamelのバージョンです。最新版も試してみましたが、それでも同じです。私は行方不明のものがありますか?

サービスタイプでContent-Typeを渡す必要があります。シナリオのこの種の試験があるラクダ源で

答えて

0

https://github.com/apache/camel/blob/master/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpProducerContentTypeTest.java

は両方のテストケースに本体を設定する必要があります。

https://github.com/apache/camel/blob/master/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java#L482-L582

をしてラクダのhttpすぎ:あなたはラクダhttp4でこれを見るべき

https://github.com/apache/camel/blob/master/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java#L447-L506

あなたはHttp4/HTTPコンポーネントを使用することを決定した場合、あなたが設定する必要があります体。

nabble上のこの非常に古い議論もあります。詳細については、 http://camel.465427.n5.nabble.com/Http4-Set-Header-Content-Type-not-passing-through-to-the-HTTP-Request-td5746414.html

+0

おかげで。私は既に上記の議論を行ってきましたが、その中で言及されているように、apache-cxfrsを使用することは私の選択肢ではありません。私たちはapache-httpコンポーネントを使って多くのサービスを消費しています。 GETタイプにもContent-Typeが必要なシナリオの処理方法 – Samy

+0

ボディを設定する以外に方法はありません。 – Oscerd

+0

bodyが設定されている場合、メソッドタイプはPOSTに変更されます。空の文字列 ""を設定しようとしました。 – Samy

関連する問題