From 48a93c2fbe8a1d246ba438f19ca2255f9af7a94a Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 10 Aug 2023 21:36:32 +0800 Subject: [PATCH] fix code --- .../org/dromara/hutool/http/HttpUtil.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/HttpUtil.java b/hutool-http/src/main/java/org/dromara/hutool/http/HttpUtil.java index fd2735297..f0e559998 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/HttpUtil.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/HttpUtil.java @@ -144,6 +144,20 @@ public class HttpUtil { return ClientEngineFactory.getEngine().send(request); } + /** + * 将表单数据加到URL中(用于GET表单提交) + * 表单的键值对会被url编码,但是url中原参数不会被编码 + * 且对form参数进行 FormUrlEncoded ,x-www-form-urlencoded模式,此模式下空格会编码为'+' + * + * @param url URL + * @param form 表单数据 + * @param charset 编码 null表示不encode键值对 + * @return 合成后的URL + */ + public static String urlWithFormUrlEncoded(final String url, final Map form, final Charset charset) { + return urlWithForm(url, form, charset, true); + } + /** * 将表单数据加到URL中(用于GET表单提交)
* 表单的键值对会被url编码,但是url中原参数不会被编码 @@ -154,14 +168,8 @@ public class HttpUtil { * @param isEncodeParams 是否对键和值做转义处理 * @return 合成后的URL */ - public static String urlWithForm(String url, final Map form, final Charset charset, final boolean isEncodeParams) { - if (isEncodeParams && StrUtil.contains(url, '?')) { - // 在需要编码的情况下,如果url中已经有部分参数,则编码之 - url = UrlQueryUtil.encodeQuery(url, charset); - } - - // url和参数是分别编码的 - return urlWithForm(url, UrlQueryUtil.toQuery(form, charset), charset, false); + public static String urlWithForm(final String url, final Map form, final Charset charset, final boolean isEncodeParams) { + return urlWithForm(url, UrlQueryUtil.toQuery(form, charset), charset, isEncodeParams); } /**