使用 WebTarget 时指定原始查询字符串
Specify raw query string when using 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 是不可行的,因为它遍布整个大型项目。
第一,相关问题:Url encoding issue with Jersey Client
经过大量研究,似乎唯一的方法是在创建 WebTarget 时指定整个 uri,如下所示:
Client client = ClientBuilder.newClient().register(authFeature);
WebTarget webTarget = client.target("https://end.point.url/endpoint/id?data")
我正在处理一个现有的大型项目,该项目利用 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 是不可行的,因为它遍布整个大型项目。
第一,相关问题:Url encoding issue with Jersey Client
经过大量研究,似乎唯一的方法是在创建 WebTarget 时指定整个 uri,如下所示:
Client client = ClientBuilder.newClient().register(authFeature);
WebTarget webTarget = client.target("https://end.point.url/endpoint/id?data")