Публикация данных с использованием Джерси

#jersey

#джерси

Вопрос:

Я пытаюсь сделать запрос к третьему файлу, который эквивалентен следующему:

 curl -G -X GET -u {API KEY}:X https://some.com/api/head/remotelogin.json -d 'id=1234amp;msg=hello'
  

id Также используется третьей стороной для проверки запроса.

Ниже приведен интерфейс, который я написал:

 public interface ThirdParty Client {
    @POST
    @Path("api/head/remotelogin.json")
    @Produces(MediaType.APPLICATION_JSON)
    @Consumer(MediaType.APPLICATION_FORM_URLENCODED)
    Response authenticate(@HeaderParam(HttpHeaders.AUTHORIZATION) String authHeader, String payload)
}
  

Я не уверен, как создать полезную нагрузку, и правильно ли я использую @Consumer(MediaType.APPLICATION_FORM_URLENCODED) ?

Я выполняю свой post-запрос на Java следующим образом

final Response response = ThirdPartyClient.authenticate(base64encoded("{API KEY}:X"), "id=1234amp;msg=hello");

Я получаю, 200 но id неверно.

Я довольно новичок в Джерси, и я провел весь день, читая документы и пробуя разные вещи.

Комментарии:

1. Что вы подразумеваете под «неправильным идентификатором»? Где? Каково значение payload параметра в authenticate ?

Ответ №1:

Немного поспав, я получаю ответ…

     @GET
    @Path("api/head/remotelogin.json")
    @Produces(MediaType.APPLICATION_JSON)
    Response authenticate(@HeaderParam(HttpHeaders.AUTHORIZATION) String authHeader, @QueryParam("id") String id, @QueryParam("msg") String msg);
  

final Response response = ThirdPartyClient.authenticate("Basic " base64encoded("{API KEY}:X"), "1234", "hello");

"Basic " Здесь важно.