Опубликовать данные с использованием Джерси - PullRequest
0 голосов
/ 04 апреля 2019

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

curl -G -X GET -u {API KEY}:X https://some.com/api/head/remotelogin.json -d 'id=1234&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)?

Я выполняю запрос на публикацию вJava как

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

Я получаю 200, но id не так.

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

1 Ответ

0 голосов
/ 04 апреля 2019

После некоторого сна, ответ ...

    @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 " необходим.

...