2017-12-13 4 views
1

camel-restletを使用して残りのエンドポイントを呼び出すと、投稿本体は設定されません。 は、ここに私のblueprint.xmlCamel-Restletプロデューサメッセージ本文がヌルです

<camelContext id="blueprint-bean-context-SF" 
    xmlns="http://camel.apache.org/schema/blueprint"> 

    <route id="Camel-Restlet-Client"> 

     <from uri="timer://example?repeatCount=1&amp;period=1000" /> 
     <setHeader headerName="Content-Type"> 
      <constant>application/json</constant> 
     </setHeader> 
     <setHeader headerName="api-key"> 
      <constant>{{drupal-api-key}}</constant> 
     </setHeader> 
     <setBody><constant>{name: "paul rudd", movies: ["I Love You Man", "Role Models"]}</constant></setBody> 
     <log message="Request: ${headers} \n ${body}" /> 
     <to uri="restlet:https://reqres.in/api/users?restletMethod=POST" /> 
     <log message="Response: ${headers} \n ${body}" /> 
    </route> 

</camelContext> 

私はラクダ2.20.1を使用しています。どんな助けもありがたいですか?

答えて

0

私は自分自身でcmelに新しいですが、問題はあなたが使用しているsetHeaderだと思います。なぜなら、setHeaderは、Camel-Messageのヘッダーを設定するので、HTTP経由で送信されるHTTP要求のヘッダーは設定しないからです。メッセージには、restletによって認識されるヘッダーを設定する必要があります。そして、restletは、setheaderの値をhttp-requestの値に転送します。

申し訳ありませんが、どうすればいいですか?ヘッダーを認証に使用する次のコードは動作します。

restConfiguration("restlet").bindingMode(RestBindingMode.json); // use json for all 

from("timer://example?repeatCount=1&period=1000") 
.setHeader("CamelRestletLogin", constant("xxx")) 
.setHeader("CamelRestletPassword", constant("xxx")) 
.to("restlet:https://xxx.hana.ondemand.com:443/ain/services/api/v1/models") 

Sry私はもっと助けませんでした。

関連する問題