我正在处理一个大型现有项目,该项目利用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是不可行的,因为在整个大型项目中都是如此。
答案 0 :(得分:0)
首先,相关问题:Url encoding issue with Jersey Client
经过大量研究,似乎唯一的方法是在创建WebTarget时指定整个uri,如下所示:
private boolean[] isNumberEvenOrOdd(Condition condition){
boolean isEven = false;
boolean isOdd = false;
boolean[] isNumberEvenOrOdd = new boolean[2];
if(condition instanceOf ConditionList) {
for(Condition child : ConditionList.getConditions()){
if (child instanceOf ConditionList){
isNumberEvenOrOdd(child);
}
else{
if((Integer)child % 2 == 0) {
isEven = true;
}
else {
isOdd = true;
}
}
}
}
isNumberEvenOrOdd[0] = isEven;
isNumberEvenOrOdd[1] = isOdd;
return isNumberEvenOrOdd;
}