Укажите необработанную строку запроса при использовании WebTarget

Я работаю с большим существующим проектом, который использует 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 ответ

Решение

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

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

Client client = ClientBuilder.newClient().register(authFeature);
WebTarget webTarget = client.target("https://end.point.url/endpoint/id?data")
Другие вопросы по тегам