diff --git a/CHANGELOG.md b/CHANGELOG.md index 2912953e2..c52991822 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.37(2025-03-07) +# 5.8.37(2025-03-11) ### 🐣新特性 * 【json 】 ObjectMapper删除重复trim(pr#3859@Github) @@ -12,6 +12,7 @@ * 【http 】 `HttpBase`增加重载可选是否返回声调(pr#3883@Github) * 【core 】 增加`VersionUtil`版本比较工具(pr#3876@Github) * 【db 】 增加GoldenDB识别(pr#3886@Github) +* 【http 】 改进`UrlQuery`对无参URL增加判断识别(issue#IBRVE4@Gitee) ### 🐞Bug修复 * 【setting】 修复`SettingLoader`load未抛出异常导致配置文件无法正常遍历的问题(pr#3868@Github) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlQuery.java b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlQuery.java index a4876052c..e94635d81 100644 --- a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlQuery.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlQuery.java @@ -222,6 +222,9 @@ public class UrlQuery { if (StrUtil.isBlank(queryStr)) { return this; } + } else if(StrUtil.startWith(queryStr, "http://") || StrUtil.startWith(queryStr, "https://")){ + // issue#IBRVE4 用户传入只有URL,没有param部分,返回空 + return this; } } diff --git a/hutool-http/src/test/java/cn/hutool/http/IssueIBRVE4Test.java b/hutool-http/src/test/java/cn/hutool/http/IssueIBRVE4Test.java new file mode 100644 index 000000000..dcbb225b7 --- /dev/null +++ b/hutool-http/src/test/java/cn/hutool/http/IssueIBRVE4Test.java @@ -0,0 +1,26 @@ +package cn.hutool.http; + +import cn.hutool.core.util.CharsetUtil; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class IssueIBRVE4Test { + @Test + public void decodeParamMapNoParamTest() { + // 参数值不存在分界标记等号时 + // 无参数值时 + final Map> paramMap = HttpUtil.decodeParams("https://hutool.cn/api.action", CharsetUtil.CHARSET_UTF_8); + assertEquals(0,paramMap.size()); + } + @Test + public void decodeParamMapListNoParamTest() { + // 参数值不存在分界标记等号时 + // 无参数值时 + final Map paramMap1 = HttpUtil.decodeParamMap("https://hutool.cn/api.action", CharsetUtil.CHARSET_UTF_8); + assertEquals(0,paramMap1.size()); + } +}