如何在Apache驼峰中使用POST调用REST?

时间:2017-12-01 15:29:31

标签: java rest apache-camel

我想用Apache Camel调用REST API。

当我从Postman执行此操作时,我使用以下内容:

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进行响应。

但我真的不知道如何在Camel上写这个。

2 个答案:

答案 0 :(得分:2)

Documentation提供了一个示例:

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方法;)。

答案 1 :(得分:1)

只需添加@ marcin-pietraszek精确答案并根据您的上一条评论:

  

如何在代码中添加Body(用户名: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等)。