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
+1
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)
-------------------------------------------------------------------------------------------------------------
@@ -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);
}
/**
@@ -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;
}
@@ -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());
}
}