【问题标题】:Send list of query parameters to jersey client using GET in jersey 2.x?在 jersey 2.x 中使用 GET 将查询参数列表发送到 jersey 客户端?
【发布时间】:2016-01-23 13:52:38
【问题描述】:

在球衣版本 1.4 中(至少这是我可以在网上找到的唯一参考资料)有 com.sun.jersey.api.client.WebResource ,您可以在其中使用 Webresource.queryParams() 发送参数列表 ...似乎该方法不再存在于球衣中-客户端 2.x ...我想仍然可以这样做(无需手动组合查询字符串)?有一个类 WebTarget 有一个方法:

public WebTarget queryParam(String name, Object... values);

但没有 queryParams() 方法。

【问题讨论】:

    标签: java rest jersey-client


    【解决方案1】:

    只需多次调用 queryParam()。比如

    target.queryParam("foo", "fooValue").queryParam("bar", "barValue");
    

    或者,如果您有地图,您可以遍历条目:

    for (Map.Entry<String, Object> entry : map.entrySet()) {
        target = target.queryParam(entry.getKey(), entry.getValue());
    }
    

    【讨论】:

    • 如果您已经有了地图,还能做什么?例如.queryParams(params)
    • @Sebastain,但那不适合球衣 2.x.x 线?
    • 是的。请忽略我完全愚蠢的评论(应该删除它,但你的第二条评论就没有意义了)。我调整了我的答案。
    【解决方案2】:

    您可以使用public WebTarget queryParam(String name, Object... values); 方法:

    target.queryParam("foo", "fooValue", "barValue", "anythingElseValue");
    

    如果你已经有一个列表,只需将它作为一个普通数组传递:

    List<String> list = new ArrayList<>();
    list.add("foo");
    list.add("bar");
    
    target.queryParam("foo", list.toArray());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多