Как определить маршруты верблюжьей пристани для запроса https и передать параметр в некоторый api для аутентификации?

Я хочу отправить потребительский запрос https, используя компонент camel-jetty, и этот адрес возвращает некоторый ответ в формате JSON, ниже я упоминаю свой код DSL.

from("jetty:https://someSiteAddress.com/api/control/authorizeUser?username=__&password=__").to("stream:out"); 

I am getting this warning:  
[WARNING]   
java.net.SocketException: Permission denied  
at sun.nio.ch.Net.bind0 (Native Method)  
at sun.nio.ch.Net.bind (Net.java:433)
at sun.nio.ch.Net.bind (Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind 

Но всякий раз, когда я нажимаю этот HTTP-URL в браузере, он будет отлично работать с аутентификацией.
Если кто-нибудь знает, что делать, чтобы выполнить это действие в apache camel, пожалуйста, помогите мне, это будет очень весело для меня и других.

И как я могу узнать, какой метод использует верблюд для отправки запроса, такого как POST или GET.
Спасибо


person Rajat.r2    schedule 25.11.2017    source источник
comment
Привет! Если я правильно понимаю, вы хотите использовать эту конечную точку: https://someSiteAddress.com/api/control/authorizeUser?username=__&password=__, правильно? Если я прав, вам следует использовать компонент camel-http в to. Как описывается ваш код, вы открываете URL, а не потребляете его. Если у вас возникли проблемы с этим, дайте мне знать, что я вставил это в ответ.   -  person Ricardo Zanini    schedule 28.11.2017
comment
@RicardoZanini Спасибо за помощь, позвольте мне четко указать Здесь я хочу попасть в конечную точку: from (упомянуто выше), которая возвращает некоторые token_Id и эти token_Id, которые я печатаю на консоли до (stream: out). Но я получаю указанную выше ошибку, и я думаю, что эта ошибка связана с причалом.   -  person Rajat.r2    schedule 29.11.2017
comment
Привет! пожалуйста, посмотрите мой ответ. Вы используете причал, чтобы открыть конечную точку по этому адресу: https://someSiteAddress.com не потребляя от нее. Чтобы использовать URL-адрес, вы должны указать его с помощью to().   -  person Ricardo Zanini    schedule 30.11.2017


Ответы (2)


Не могли бы вы попробовать это вместо этого? Я прокомментирую каждую строку, чтобы помочь понять вашу проблему.

// endpoint to start your route. could be a http endpoint you expose via jetty, jms, vm, seda or any other option. Here I'm using the simplest one.
from("direct:start")
    // logs on
    .to("log:DEBUG?showBody=true&showHeaders=true")
    // consume the endpoint
    .to("https://someSiteAddress.com/api/control/authorizeUser?username=__&password=__"")
    // log the body to the console so you could process the response later knowing what to do (the token you are mentioning should be in here.
    .to("log:DEBUG?showBody=true&showHeaders=true")
    .to("stream:out") //or whatever you want to

Не забывайте о camel-http зависимости, чтобы этот пример работал:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-http</artifactId>
</dependency>

Ваше здоровье!

person Ricardo Zanini    schedule 30.11.2017
comment
Привет, @RicardoZanini. Я благодарен за разъяснение моей концепции. Код - Build Success, но я все еще не получаю ответа (в виде токена и идентификатора). на всякий случай, если у вас есть сомнения по поводу моего URL-ответа, он отлично работает в браузере. - person Rajat.r2; 01.12.2017
comment
@RajatTemaniya, пожалуйста, опубликуйте ответ, который вы просматриваете в браузере. Тело ответа должно быть в вашем ответе. - person Ricardo Zanini; 01.12.2017
comment
Привет, @RicardoZanini, это то, что я ищу {organizationPartyId: MY_COMPANY, sessionId: somerandomid.jvm1, _LOGIN_PASSED_: TRUE, authorizeUserResult: {userLoginId: myuser, responseMessage: success, partyId: mypartyken, token }} Я попытался получить взамен, но ответа не получил. - person Rajat.r2; 02.12.2017
comment
Это неудобно. Возможно, у вас проблемы с TLS / SSL. Можно ли попробовать с конечной точкой без HTTPS? - person Ricardo Zanini; 03.12.2017
comment
В верблюде есть другой способ получить ответ в обменном теле. - person Rajat.r2; 09.12.2017
comment
Привет, @RicardoZanini, как мне узнать, что верблюд подключается к заданному URL? - person Rajat.r2; 11.12.2017
comment
Вы можете просмотреть журналы. Я обновил свой ответ. См .: stackoverflow.com/questions / 39651918 / - person Ricardo Zanini; 11.12.2017
comment
Почему он не поступает непосредственно в тело обмена через процессор? - person Rajat.r2; 12.12.2017

Это тоже нормально работает.

  from("direct:in")
 .to("https://www.someAddress.com/api/control /authorizeUser?username=__ &password=__")
 .to("stream:out");

Спасибо @RicardoZanini

person Rajat.r2    schedule 12.12.2017