Укажите необработанную строку запроса при использовании WebTarget - PullRequest
0 голосов
/ 30 октября 2018

Я работаю с большим существующим проектом, который использует javax.ws.rs.client.WebTarget для общения с RESTful API. API разработан третьей стороной, и я не могу его контролировать. Мне нужно сделать запрос в следующем формате:

https://end.point.url/endpoint/id?data

К сожалению, я не могу понять, как указать такой запрос, используя WebTarget. Я попытался использовать path("endpoint/id?data"), но это преобразуется в endpoint/id%3Fdata, и я получаю 404 обратно. Я попытался использовать queryParam, указав пустое значение, которое возвращает меня endpoint/id?data= - что приводит к ошибке обязательный параметр data отсутствует .

Какой еще вариант есть? Замена WebTarget чем-то другим неосуществима, так как это повсеместно для большого проекта.

1 Ответ

0 голосов
/ 30 октября 2018

Во-первых, связанный вопрос: Проблема с кодировкой URL в клиенте Джерси

После долгих исследований кажется, что единственный способ сделать это - указать весь URI при создании WebTarget, например:

Client client = ClientBuilder.newClient().register(authFeature);
WebTarget webTarget = client.target("https://end.point.url/endpoint/id?data")
...