在指定url后追加参数
/** * 在指定url后追加参数 * @param url * @param data 参数集合 key = value * @return */ private static String appendUrl(String url, Map<String, Object> data) { String newUrl = url; StringBuffer param = new StringBuffer(); for (String key : data.keySet()) { param.append(key + "=" + data.get(key).toString() + "&"); } String paramStr = param.toString(); paramStr = paramStr.substring(0, paramStr.length() - 1); if (newUrl.indexOf("?") >= 0) { newUrl += "&" + paramStr; } else { newUrl += "?" + paramStr; } return newUrl; }
获取指定url中的某个参数
/** * 获取指定url中的某个参数 * @param url * @param name * @return */ public static String getParamByUrl(String url, String name) { url += "&"; String pattern = "(\\?|&){1}#{0,1}" + name + "=[a-zA-Z0-9]*(&{1})"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(url); if (m.find( )) { return m.group(0).split("=")[1].replace("&", ""); } else { return null; } }
测试类:
public static void main(String[] args) throws Exception { // 追加参数 // Map<String, Object> param = new HashMap<>(); // param.put("id", 1); // param.put("age", 20); // System.out.println(appendUrl("http://test.com", param)); // System.out.println(appendUrl("http://test.com?name=a", param)); // String url = "http://test.com?name=abd&id=1&age=20"; // 获取参数 String url = "http://www.xxx.com/login?access_token=xxxx&id=yyyyy"; System.out.println(getParamByUrl(url, "id")); }