2015-05-29 42 views
1

我只是试图将凭证发送给采用json格式的用户名和密码的宁静服务,并且会返回访问令牌。无论我尝试什么,我都会收到400错误,并且从服务器返回的错误是“必须提供正文。”这里是最后的片断我想:如何在apache camel上设置正文http POST请求

@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"); 
    } 
} 

我已经证实了我的凭据邮差做工精​​细,并得到适当的响应,访问令牌。我相信我试图连接的服务是使用Oauth2。

+0

你尝试设置内容类型的头?: .setHeader(Exchange.CONTENT_TYPE,常量(“应用程序/ json”)); – robert

回答

0

尝试编组。对我来说,这工作:

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