I'm working with a large existing project, which utilises javax.ws.rs.client.WebTarget
to talk to RESTful API. The API is developed by a third party and I have no control over it. I need to make a request in the following format:
https://end.point.url/endpoint/id?data
Unfortunately, I can't figure out how to specify such request using WebTarget
. I tried using path("endpoint/id?data")
, but this gets converted into endpoint/id%3Fdata
and I get 404 back. I tried using queryParam
specifying empty value, which gets me endpoint/id?data=
- which results in error required parameter data
missing .
What other option is there? Replacing WebTarget with something else isn't feasible, as it is all over the large project.
First, related question: Url encoding issue with Jersey Client
After quite a bit of research, it seems that the only way to do it is to specify the entire uri when the WebTarget is created, like so:
Client client = ClientBuilder.newClient().register(authFeature);
WebTarget webTarget = client.target("https://end.point.url/endpoint/id?data")
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.