This commit is contained in:
Looly 2021-10-21 21:36:22 +08:00
parent 6ad682fb0a
commit 39df3623e1
4 changed files with 13 additions and 2 deletions

View File

@ -27,6 +27,7 @@
* 【crypto 】 修复KeyUtil异常信息参数丢失问题issue#1902@Github
* 【core 】 修复StrUtil.split和splittoArray不一致问题issue#I4ELU5@Github
* 【core 】 修复SymmetricCrypto未关闭CipherOutputStream导致的问题issue#I4EMST@Gitee
* 【core 】 修复QueryBuilder对/转义问题issue#1904@Github
-------------------------------------------------------------------------------------------------------------

View File

@ -129,7 +129,7 @@ public final class UrlBuilder implements Serializable {
*/
public static UrlBuilder of(String url, Charset charset) {
Assert.notBlank(url, "Url must be not blank!");
return of(URLUtil.url(url.trim()), charset);
return of(URLUtil.url(StrUtil.trim(url)), charset);
}
/**

View File

@ -312,7 +312,7 @@ public class UrlQuery {
private static String toStr(CharSequence str, Charset charset, boolean isEncode) {
String result = StrUtil.str(str);
if (isEncode) {
result = URLUtil.encodeAll(result, charset);
result = URLUtil.encodeFragment(result, charset);
}
return result;
}

View File

@ -271,4 +271,14 @@ public class UrlBuilderTest {
urlBuilder = UrlBuilder.ofHttp(urlBuilder.toString());
Assert.assertEquals(urlBuilder.toString(), urlBuilder.toString());
}
@Test
public void slashEncodeTest(){
// https://github.com/dromara/hutool/issues/1904
// 在query中"/"是不可转义字符
// https://www.rfc-editor.org/rfc/rfc3986.html#section-3.4
String url = "https://invoice.maycur.com/2b27a802-8423-4d41-86f5-63a6b259f61e.xlsx?download/2b27a802-8423-4d41-86f5-63a6b259f61e.xlsx&e=1630491088";
final UrlBuilder urlBuilder = UrlBuilder.ofHttp(url);
Assert.assertEquals(url, urlBuilder.toString());
}
}