从JAX-RS 1.x迁移到2.x(Jersey) - 将QueryParams设置为Map?

时间:2015-04-02 09:51:29

标签: java web-services rest jersey jax-rs

使用Jersey 1.x,您以前可以在其客户端API中将QueryParams设置为Map:

// Jersey 1.x Client API
MultivaluedMap<String, String> queryParams = ....
webResource.queryParams(queryParams);

我们现在正在迁移到JAX-RS 2.x并希望使用其新的客户端API。在一次调用中似乎没有任何可能使用queryparams的映射,看起来你需要在循环中设置每个查询参数:

// JAX-RS 2.x Client API
MultivaluedMap<String, String> queryParams = ....
for (Entry<String, List<String>> entry : queryParams.entrySet()) {
    webTarget.queryParam(entry.getKey(), value();
    // in case of multiple keys per value, we even need to use an inner loop...
}

由于显而易见的原因,这是非常乏味和烦人的 - 有人可以确认这实际上是用JAX-RS 2解决这个问题的唯一方法,还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

使用标准的JAX-RS 2.0客户端API没有其他方法可以做到这一点。