简单的解析key=value这种形式的数据,不支持数组类型的数据,正常够用了
public class UrlUtil {
/**
* 取url中的参数
* @param url
* @return
*/
public static Map<String, String> getParameter(String url) {
Map<String, String> param = new HashMap<>();
//先decode一下
try {
url = URLDecoder.decode(url, StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException ignore) {}
//解析参数
int startIndex = url.indexOf('?');
if (startIndex != -1) {
String paramStr = url.substring(startIndex + 1);
String[] keyValues = paramStr.split("&");
for (String keyValue : keyValues) {
int separatorIndex = keyValue.indexOf("=");
if (separatorIndex != -1) {
param.put(keyValue.substring(0, separatorIndex), keyValue.substring(separatorIndex + 1));
} else {
//没有等号的情况,value认为null
param.put(keyValue, null);
}
}
}
return param;
}
}