2017-01-01 2 views
0

У меня есть URL-адрес, как это:Джерси получить полномочия от URL

http://log:[email protected]:8080/myendpoint 

И Джерси конечная точка:

@GET @Produces(MediaType.APPLICATION_JSON) @Path("/login") 
    @Consumes(MediaType.APPLICATION_JSON) public Response login(
      @Context HttpHeaders headers, @QueryParam("callback") String callback) 
{ 
} 

А в идеале я хочу, чтобы «войти» и «пропуск» в моем методе конечных точек , Как это сделать в Джерси? Я пробовал много сигнатур методов endpint, фильтры и т.д., но он показывает мне

http://localhost вместо http://log:[email protected] везде

Как этого добиться?

ответ

1

Предполагая, что в вашем переднем конце вы отправляете свои параметры как объект json с использованием JSON.stringify(), а затем обратно в свой метод конечной точки. Добавьте это как второй аргумент в подпись этого метода JsonObject payload. Тогда вы можете получить доступ к параметрам запроса в рамках этого метода следующим образом

String log = payload.getString("log"); 
String pass = payload.getString("pass"); 

Пересмотренный вариант

@Path("/login") 
@GET 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_JSON) 
public Response login(@Context UriInfo uriInfo, @Context HttpHeaders headers, @QueryParam("callback") String callback) { 
    URI requestUri = uriInfo.getRequestUri(); 
    String authority = requestUri.getAuthority(); // authority contains what you need; 
} 
+0

Спасибо, но я не использую JSON, просто получить запрос на почтальона. Как я могу получить его из url? Этот подход связан с основной проблемой jsonp. Я не могу отправить заголовок авторизации, поэтому решил отправить login/pass в url, как я описал. Как получить его из URL-адреса? – avalon

+0

Затем просто добавьте '@QueryParam (« журнал ») Строковый журнал, @QueryParam (« pass ») String pass' к вашей сигнатуре метода конечной точки – Dummy

+0

Спасибо, но вы не понимаете. Я добавляю логин и пароль перед доменом, и у них нет их имен. 'log' и 'pass' это просто логин и пароль. Любые струны могут быть на своих местах. 'mylogin', 'mypassword'. Это не имена, а случайные строки – avalon

Смежные вопросы