2015-05-29 2 views
1

Я просто пытаюсь отправить учетные данные в службу поддержки, которая принимает имя пользователя и пароль json и возвращает токен доступа. Независимо от того, что я пытаюсь, я получаю ошибку 400, и ошибка, возвращаемая с сервера, - «Должен поставлять тело». Вот последний отрывок я попробовал:Как установить тело на верблюде apache 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(... 
Смежные вопросы