有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Apache camel中使用POST调用REST?

我想用ApacheCamel调用RESTAPI

当我从邮递员那里做这件事时,我使用了以下方法:

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

但我真的不知道怎么在骆驼上写这个


共 (2) 个答案

  1. # 1 楼答案

    为了补充@marcin pietraszek的精确答案,根据您最后的评论:

    how can I add Body (Username: ABC, Password: ABC, Country: UK) parameters inside your code have shared

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

    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等)

  2. # 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方法;)