我最终写了我自己的。可以这样称呼
URIUtils.withQuery(uri, "param1", "value1", "param2", "value2");
这还不错。
public static URI withQuery(URI uri, Map<String, String> params) { StringBuilder query = new StringBuilder(); char separator = '?'; for (Entry<String, String> param : params.entrySet()) { query.append(separator); separator = '&'; try { query.append(URLEnprer.enpre(param.getKey(), "UTF-8")); if (!StringUtils.isEmpty(param.getValue())) { query.append('='); query.append(URLEnprer.enpre(param.getValue(), "UTF-8")); } } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } return URI.create(uri.toString() + query.toString());}public static URI withQuery(URI uri, String... params) { Map<String, String> map = new linkedHashMap<String, String>(); for (int i = 0; i < params.length; i += 2) { String key = params[i]; String val = i + 1 < params.length ? params[i + 1] : ""; map.put(key, val); } return withQuery(uri, map);}


