2017-12-01 25 views
0

Apache CamelでREST APIを呼び出したいとします。ApacheのラクダでRESTをPOSTで呼び出す方法は?

私はポストマンからそれを行うと、私は次のようにします。

Method: Post 
Headers: 
Content-Type: application/x-www-form-urlencoded 

Body 
Check x-www-form-urlencoded option 

3 Key value parameters added 
Username: ABC 
Password: ABC 
Country: UK 

この構成を設定した後、私は私のREST APIを消費することですし、それがXMLで応答します。

しかし、私は実際にこれをキャメルに書く方法を知らない。 );

from("direct:start"). 
    setHeader(Exchange.HTTP_METHOD, constant("POST")). 
    setHeader(Exchange.CONTENT_TYPE, constant("application/x-www-form-urlencoded")). 
    to("http://www.google.com"); 

私はあなたにもありsetBodyメソッドを使用することができることを前提としています

+0

ドキュメントを確認することから始めるのはなぜですか:https://github.com/apache/camel/blob/master/README.mdここでの質問は、特定のエラーを処理する方法や、コンパイルするコードを取得しないなど – RightHandedMonkey

答えて

1

Documentationに例を示します。

+0

ありがとう... !!あなたのコード内にHeader(Content-Type:application/x-www-form-urlencoded)とBody(Username:ABC、Password:ABC、Country:UK)パラメータをどのように共有できるのか分かりますか? –

0

ただ、@のマルチン・pietraszek正確な答えに追加して、あなたの最後のコメントをもとにする:あなたのコード内のパラメータ

どのように私はボディ(:ABC、パスワード:ABC、国英国のユーザー名)を追加することができます共有しました

サービスのインターフェイスによって異なります。それはクエリパラメータだ場合は、使用できます。

from("direct:start"). 
    setHeader(Exchange.HTTP_METHOD, constant("POST")). 
    setHeader(Exchange.CONTENT_TYPE, constant("application/x-www-form-urlencoded")). 
    setHeader(Exchange.HTTP_QUERY, constant("Username=ABC&Password=ABC&Country=UK")) 
    to("http://www.google.com"); 

を、それが体内に直接だ場合は、使用することができます

from("direct:start"). 
    setHeader(Exchange.HTTP_METHOD, constant("POST")). 
    setHeader(Exchange.CONTENT_TYPE, constant("application/x-www-form-urlencoded")). 
    setBody(constant("Username: ABC, Password: ABC, Country: UK")) 
    to("http://www.google.com"); 

あなたはそれを受け取ることを期待する方法を掲示しているサービスを調べる必要があることを思い出させます本文(JSON、XML、CSVなど)

関連する問題