mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
fix bug
This commit is contained in:
parent
6ad682fb0a
commit
39df3623e1
@ -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());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user