mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
fix method
This commit is contained in:
parent
0988a56d44
commit
a97d8c5b4d
@ -210,16 +210,6 @@ public class UrlQuery {
|
||||
return this.query.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=&key3=v3形式
|
||||
*
|
||||
* @param charset encode编码,null表示不做encode编码
|
||||
* @return URL查询字符串
|
||||
*/
|
||||
public String build(Charset charset) {
|
||||
return build(charset, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建URL查询字符串,即将key-value键值对转换为{@code key1=v1&key2=v2&key3=v3}形式。<br>
|
||||
* 对于{@code null}处理规则如下:
|
||||
@ -229,11 +219,9 @@ public class UrlQuery {
|
||||
* </ul>
|
||||
*
|
||||
* @param charset encode编码,null表示不做encode编码
|
||||
* @param isEncode 是否转义键和值,转义遵循rfc3986规范
|
||||
* @return URL查询字符串
|
||||
* @since 5.7.13
|
||||
*/
|
||||
public String build(Charset charset, boolean isEncode) {
|
||||
public String build(Charset charset) {
|
||||
if (MapUtil.isEmpty(this.query)) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
@ -247,10 +235,10 @@ public class UrlQuery {
|
||||
if(sb.length() >0){
|
||||
sb.append("&");
|
||||
}
|
||||
sb.append(isEncode ? RFC3986.QUERY_PARAM_NAME.encode(name, charset) : name);
|
||||
sb.append(RFC3986.QUERY_PARAM_NAME.encode(name, charset));
|
||||
value = entry.getValue();
|
||||
if (null != value) {
|
||||
sb.append("=").append(isEncode ? RFC3986.QUERY_PARAM_VALUE.encode(value, charset) : value);
|
||||
sb.append("=").append(RFC3986.QUERY_PARAM_VALUE.encode(value, charset));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -302,21 +290,4 @@ public class UrlQuery {
|
||||
this.query.put(URLUtil.decode(value, charset), null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 键值对的name转换为
|
||||
*
|
||||
* @param str 原字符串
|
||||
* @param charset 编码,只用于encode中
|
||||
* @param isEncode 是否转义,转义遵循rfc3986规范
|
||||
* @return 转换后的String
|
||||
* @since 5.7.13
|
||||
*/
|
||||
private static String nameToStr(CharSequence str, Charset charset, boolean isEncode) {
|
||||
String result = StrUtil.str(str);
|
||||
if (isEncode) {
|
||||
result = RFC3986.QUERY_PARAM_NAME.encode(result, charset);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -306,4 +306,11 @@ public class UrlBuilderTest {
|
||||
|
||||
Assert.assertEquals("https://domain.cn/api/xxx/bbb", url);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void percent2BTest(){
|
||||
String url = "http://xxx.cn/a?Signature=3R013Bj9Uq4YeISzAs2iC%2BTVCL8%3D";
|
||||
final UrlBuilder of = UrlBuilder.ofHttpWithoutEncode(url);
|
||||
Assert.assertEquals(url, of.toString());
|
||||
}
|
||||
}
|
||||
|
@ -459,11 +459,11 @@ public class HttpUtil {
|
||||
* </pre>
|
||||
*
|
||||
* @param paramMap 表单数据
|
||||
* @param charset 编码,null表示不encode键值对
|
||||
* @param charset 编码,{@code null} 表示不encode键值对
|
||||
* @return url参数
|
||||
*/
|
||||
public static String toParams(Map<String, ?> paramMap, Charset charset) {
|
||||
return toParams(paramMap, charset, true);
|
||||
return UrlQuery.of(paramMap).build(charset);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -480,9 +480,11 @@ public class HttpUtil {
|
||||
* @param isEncode 是否转义键和值
|
||||
* @return url参数
|
||||
* @since 5.7.13
|
||||
* @deprecated 请使用 {@link #toParams(Map, Charset)}, charset为null表示不编码
|
||||
*/
|
||||
@Deprecated
|
||||
public static String toParams(Map<String, ?> paramMap, Charset charset, boolean isEncode) {
|
||||
return UrlQuery.of(paramMap).build(charset, isEncode);
|
||||
return toParams(paramMap, isEncode ? charset : null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user