fix method

This commit is contained in:
Looly 2021-11-03 01:35:18 +08:00
parent 0988a56d44
commit a97d8c5b4d
3 changed files with 15 additions and 35 deletions

View File

@ -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;
}
}

View File

@ -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());
}
}

View File

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