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

Alw*_*ing 2 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
Run Code Online (Sandbox Code Playgroud)

设置此配置后,我可以使用我的 REST API 并使用 XML 进行响应。

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

Ric*_*ini 5

只是添加到@marcin-pietraszek 的精确答案中,并根据您的最后一条评论:

如何在您的代码中添加正文(用户名:ABC,密码:ABC,国家:UK)参数已共享

取决于服务的接口。如果是查询参数,则可以使用:

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");
Run Code Online (Sandbox Code Playgroud)

如果它直接在体内,您可以使用:

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");
Run Code Online (Sandbox Code Playgroud)

提醒您应该查看您发布的服务期望如何接收正文(JSON、XML、CSV 等)。