From 087bcbb325579edd2f24df0aab6733888a635e0a Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 28 May 2023 12:15:25 +0800 Subject: [PATCH] fix code --- .../hutool/core/net/url/UrlQueryUtil.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlQueryUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlQueryUtil.java index fa517dc38..ef88a6a22 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlQueryUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlQueryUtil.java @@ -77,7 +77,27 @@ public class UrlQueryUtil { * @since 5.7.16 */ public static String toQuery(final Map paramMap, final Charset charset, final boolean isFormUrlEncoded) { - return UrlQuery.of(paramMap, isFormUrlEncoded, false).build(charset); + return toQuery(paramMap, charset, isFormUrlEncoded, false); + } + + /** + * 将Map形式的Form表单数据转换为Url参数形式
+ * paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("")
+ * 会自动url编码键和值 + * + *
+	 * key1=v1&key2=&key3=v3
+	 * 
+ * + * @param paramMap 表单数据 + * @param charset 编码,null表示不encode键值对 + * @param isFormUrlEncoded 是否为x-www-form-urlencoded模式,此模式下空格会编码为'+' + * @param isStrict 是否严格模式,严格模式下,query的name和value中均不允许有分隔符。 + * @return url参数 + */ + public static String toQuery(final Map paramMap, final Charset charset + , final boolean isFormUrlEncoded, final boolean isStrict) { + return UrlQuery.of(paramMap, isFormUrlEncoded, isStrict).build(charset); } /** @@ -156,7 +176,7 @@ public class UrlQueryUtil { builder.append(RFC3986.QUERY_PARAM_NAME.encode(name, charset)).append('='); } else { builder.append(RFC3986.QUERY_PARAM_NAME.encode(name, charset)).append('=') - .append(RFC3986.QUERY_PARAM_VALUE.encode(queryPart.substring(pos, i), charset)).append('&'); + .append(RFC3986.QUERY_PARAM_VALUE.encode(queryPart.substring(pos, i), charset)).append('&'); } name = null; }