|
|
@@ -662,9 +662,11 @@ public class URLUtil {
|
|
|
/**
|
|
|
* 标准化URL字符串,包括:
|
|
|
*
|
|
|
- * <pre>
|
|
|
- * 1. 多个/替换为一个
|
|
|
- * </pre>
|
|
|
+ * <ol>
|
|
|
+ * <li>自动补齐“http://”头</li>
|
|
|
+ * <li>去除开头的\或者/</li>
|
|
|
+ * <li>替换\为/</li>
|
|
|
+ * </ol>
|
|
|
*
|
|
|
* @param url URL字符串
|
|
|
* @return 标准化后的URL字符串
|
|
|
@@ -676,9 +678,11 @@ public class URLUtil {
|
|
|
/**
|
|
|
* 标准化URL字符串,包括:
|
|
|
*
|
|
|
- * <pre>
|
|
|
- * 1. 多个/替换为一个
|
|
|
- * </pre>
|
|
|
+ * <ol>
|
|
|
+ * <li>自动补齐“http://”头</li>
|
|
|
+ * <li>去除开头的\或者/</li>
|
|
|
+ * <li>替换\为/</li>
|
|
|
+ * </ol>
|
|
|
*
|
|
|
* @param url URL字符串
|
|
|
* @param isEncodePath 是否对URL中path部分的中文和特殊字符做转义(不包括 http:, /和域名部分)
|
|
|
@@ -692,15 +696,18 @@ public class URLUtil {
|
|
|
/**
|
|
|
* 标准化URL字符串,包括:
|
|
|
*
|
|
|
- * <pre>
|
|
|
- * 1. 多个/替换为一个
|
|
|
- * </pre>
|
|
|
+ * <ol>
|
|
|
+ * <li>自动补齐“http://”头</li>
|
|
|
+ * <li>去除开头的\或者/</li>
|
|
|
+ * <li>替换\为/</li>
|
|
|
+ * <li>如果replaceSlash为true,则替换多个/为一个</li>
|
|
|
+ * </ol>
|
|
|
*
|
|
|
* @param url URL字符串
|
|
|
* @param isEncodePath 是否对URL中path部分的中文和特殊字符做转义(不包括 http:, /和域名部分)
|
|
|
* @param replaceSlash 是否替换url body中的 //
|
|
|
* @return 标准化后的URL字符串
|
|
|
- * @since 4.4.1
|
|
|
+ * @since 5.5.5
|
|
|
*/
|
|
|
public static String normalize(String url, boolean isEncodePath, boolean replaceSlash) {
|
|
|
if (StrUtil.isBlank(url)) {
|
|
|
@@ -728,10 +735,10 @@ public class URLUtil {
|
|
|
// 去除开头的\或者/
|
|
|
//noinspection ConstantConditions
|
|
|
body = body.replaceAll("^[\\\\/]+", StrUtil.EMPTY);
|
|
|
- // 替换多个\或/为单个/
|
|
|
+ // 替换\为/
|
|
|
body = body.replace("\\", "/");
|
|
|
- //issue#I25MZL,双斜杠在URL中是允许存在的,默认不做替换
|
|
|
if (replaceSlash) {
|
|
|
+ //issue#I25MZL@Gitee,双斜杠在URL中是允许存在的,默认不做替换
|
|
|
body = body.replaceAll("//+", "/");
|
|
|
}
|
|
|
}
|