Java URL链接动态添加参数,Java URL链接删除参数,UrlUtils链接参数工具类
================================
©Copyright 蕃薯耀 2021-01-22
https://www.cnblogs.com/fanshuyao/
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
public class UrlUtils {
private static Logger log = Logger.getLogger(UrlUtils.class);
public static final String QUESTION_MARK = "?";
public static final String AND_MARK = "&";
public static final String EQUAL_MARK = "=";
/**
* 获取链接的参数
* @param url 链接
* @return
*/
public static LinkedHashMap<String, String> getParamsMap(String url){
log.info("url=" + url);
if(StringUtils.isBlank(url)){
return null;
}
url = url.trim();
int length = url.length();
int index = url.indexOf(QUESTION_MARK);
if(index > -1){
//url说明有问号
if((length - 1) == index){
//url最后一个符号为?,如:http://wwww.baidu.com?
return null;
}else{
//情况为:http://wwww.baidu.com?aa=11或http://wwww.baidu.com?aa=或http://wwww.baidu.com?aa
String baseUrl = url.substring(0, index);
String paramsString = url.substring(index + 1);
log.info("baseUrl=" + baseUrl);
log.info("paramsString=" + paramsString);
if(!StringUtils.isBlank(paramsString)){
LinkedHashMap<String, String> paramsMap = new LinkedHashMap<String, String>();
String[] params = paramsString.split(AND_MARK);
for (String param : params) {
if(!StringUtils.isBlank(param)){
String[] oneParam = param.split(EQUAL_MARK);
String paramName = oneParam[0];
if(!StringUtils.isBlank(paramName)){
if(oneParam.length > 1){
paramsMap.put(paramName.trim(), oneParam[1]);//键可以去空格,值不能去空格
}else{
paramsMap.