在指定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")); }
獲取更多內容,請關注我的個人微信公眾號【程序員Style】,每天會分享新的技術、知識,工作中的常見問題,更多資料視頻等,關注回復“666”即可獲取學習資料。