使用camel-restlet调用rest端点时,未设置post body。 这是我的blueprint.xml
<camelContext id="blueprint-bean-context-SF"
xmlns="http://camel.apache.org/schema/blueprint">
<route id="Camel-Restlet-Client">
<from uri="timer://example?repeatCount=1&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 :(得分:0)
我是cmel自己的新手,但我猜这个问题是你正在使用的setHeader。因为setHeader设置了Camel-Message的头部,而不是通过线路发送的http请求的头部。您需要在消息上设置标题,这将由restlet知道。并且restlet会将setheader的值传输到http-request的theader。
抱歉,我不知道怎么做。以下编码使用Header进行身份验证:
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")
我不能帮助更多。