传入相应的url,保存好的参数键值对Map数据,url中的参数以 参数=?的形式
/**
* 传入相应的url,保存好的参数键值对Map数据,url中的参数以 参数=?的形式
*
* @param url
* @param paramMap
* @return
*/
public static String replaceArgs(String url, Map<String, Object> paramMap) {
if(url==null||paramMap.isEmpty()) return "";
// 构建请求参数
StringBuffer sb = new StringBuffer("");
try{
// 提取URL参数
String str_last = url.substring(url.indexOf("?")+1,url.length());
String[] strArr = str_last.split("[=?]");
Map<String, String> map = new LinkedHashMap<String, String>();
for (int i = 0; i < strArr.length; i++) {
if(strArr[i]!=null&&!"".equals(strArr[i])){
map.put(strArr[i].replace("&", ""), "");
}
}
String reUrl = url.substring(0,url.indexOf("?")+1);
// 参数值替换
for (Map.Entry<String, String> env : map.entrySet()) {
String r_key = env.getKey();
for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if(r_key.equalsIgnoreCase(key)){
sb.append(r_key);
sb.append("=");
sb.append(value);
sb.append("&");
break;
}
}
}
return reUrl.concat(sb.substring(0, sb.length() - 1));
}catch(Exception ex){
System.out.println("参数错误,"+ex);
}
return "";
}
/**
* 参数替换,区分大小写
*
* @param url
* @param paramMap
* @return
*/
public String replaceParam(String url, Map<String, Object> paramMap) {
for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
String check = key + "=?";
String fill = key + "=" + value;
boolean isExist = url.contains(check);
if (isExist) {
url = url.replace(check, fill);
}
String check1 = "#" + key;
String fill1 = value;
boolean isExist1 = url.contains(check1);
if (isExist1) {
url = url.replace(check1, fill1);
}
}
/*
* 对于没有被替换的剩余的带?号的参数执行删除操作。
*/
if (url.matches(".*&.*=\\?.*")) {
System.err.println("存在未替换?参数,执行去除参数!");
url = url.replaceAll("&[A-Za-z0-9_]*=\\?", "");
}
return url;
}
浙公网安备 33010602011771号