如何在apache camel http POST请求上设置正文

时间:2015-05-29 20:08:40

标签: oauth-2.0 apache-camel

我只是尝试将凭据发送到一个带有json格式的用户名和密码的restful服务,并返回一个访问令牌。无论我尝试什么,我都会收到400错误,而服务器返回的错误是#34;必须提供一个正文。"这是我尝试过的最后一个片段:

@Component
public class LoginRoute extends RouteBuilder {

@Override
public void configure() throws Exception {

String jsonCredentials =  "{\"username\":\"username\",\"password\":\"password\",\"grant_type\":\"password\",\"scope\":\"admin\"}";

from("timer://login?repeatCount=1")
    .setBody(constant(jsonCredentials))
    .setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
    .to("http://URL");
  }
}

我已确认我的凭据在Postman中正常工作,并通过访问令牌收到正确的响应。我相信我尝试连接的服务是使用Oauth2。

1 个答案:

答案 0 :(得分:0)

尝试编组。对我来说这很有效:

// your custom defined bean
Credentials creds = new Credentials(username, password, ...);
from(...).setBody(creds).marshal().json(JsonLibrary.Jackson).to(...