You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jersey 2.x调用OSIsoft WebAPI设置GET请求参数失败求助

解决JAX-RS WebTarget构造GET请求参数不匹配的问题

我一眼就看出问题所在啦!你要构造的目标请求是search/query?q=name:my_machine,但你的代码逻辑搞错了参数的结构:

  • 你的代码用webTarget.queryParam("name", "my_machine")生成的请求是search/query?name=my_machine,这和API要求的**单个q参数,值为name:my_machine**完全不符,所以API才会提示你必须指定正确的查询参数。

修正后的代码

直接把参数名改成q,值设为完整的name:my_machine字符串就行:

WebTarget webTarget = client.target("https://my_rest/api/search/query");
// 关键修改:参数名是q,值是完整的查询表达式
webTarget = webTarget.queryParam("q", "name:my_machine");
Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
Response response = invocationBuilder.get();

额外提示

如果之后需要更复杂的查询条件(比如多条件组合),只需要把完整的查询字符串作为q参数的值传入即可,比如:

webTarget = webTarget.queryParam("q", "name:my_machine AND status:running");

这样生成的请求就完全符合API要求的格式啦,应该就能正常返回数据了!

内容的提问来源于stack exchange,提问作者slacky82

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:16