Package org.miaixz.bus.core.net.url
Class UrlQuery
java.lang.Object
org.miaixz.bus.core.net.url.UrlQuery
URL中查询字符串部分的封装,类似于:
key1=v1&key2=&key3=v3查询封装分为解析查询字符串和构建查询字符串,解析可通过charset为null来自定义是否decode编码后的内容, 构建则通过charset是否为null是否encode参数键值对
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum编码模式 根据不同场景以及不同环境,对Query中的name和value采用不同的编码策略 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PercentCodecquery中的value,默认除"-", "_", ".", "*"外都编码 这个类似于JDK提供的URLEncoder -
Constructor Summary
ConstructorsConstructorDescriptionUrlQuery(Map<? extends CharSequence, ?> queryMap, UrlQuery.EncodeMode encodeMode) 构造 -
Method Summary
Modifier and TypeMethodDescriptionadd(CharSequence key, Object value) 增加键值对addAll(Map<? extends CharSequence, ?> queryMap) 批量增加键值对构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下: 如果key为null,则这个键值对忽略 如果value为null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下: 如果key为null,则这个键值对忽略 如果value为null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式build(PercentCodec keyCoder, PercentCodec valueCoder, Charset charset) 构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下: 如果key为null,则这个键值对忽略 如果value为null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式build(PercentCodec keyCoder, PercentCodec valueCoder, Charset charset, boolean encodePercent) 构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下: 如果key为null,则这个键值对忽略 如果value为null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式get(CharSequence key) 获取查询值获得查询的Mapstatic UrlQueryof()构建UrlQuerystatic UrlQuery构建UrlQuerystatic UrlQuery构建UrlQuerystatic UrlQueryof(String queryStr, Charset charset, boolean autoRemovePath, UrlQuery.EncodeMode encodeMode) 构建UrlQuerystatic UrlQueryof(Map<? extends CharSequence, ?> queryMap) 构建UrlQuerystatic UrlQueryof(Map<? extends CharSequence, ?> queryMap, UrlQuery.EncodeMode encodeMode) 构建UrlQuerystatic UrlQueryof(UrlQuery.EncodeMode encodeMode) 构建UrlQuery解析URL中的查询字符串解析URL中的查询字符串setEncodeMode(UrlQuery.EncodeMode encodeMode) 设置编码模式 根据不同场景以及不同环境,对Query中的name和value采用不同的编码策略toString()生成查询字符串,类似于aaa=111&bbb=222 此方法不对任何特殊字符编码,仅用于输出显示
-
Field Details
-
ALL
query中的value,默认除"-", "_", ".", "*"外都编码 这个类似于JDK提供的URLEncoder
-
-
Constructor Details
-
UrlQuery
构造- Parameters:
queryMap- 初始化的查询键值对encodeMode- 编码模式
-
-
Method Details
-
of
构建UrlQuery- Parameters:
queryStr- 初始化的查询字符串charset- decode用的编码,null表示不做decode- Returns:
- UrlQuery
-
of
构建UrlQuery- Parameters:
queryStr- 初始化的查询字符串charset- decode用的编码,null表示不做decodeautoRemovePath- 是否自动去除path部分,true则自动去除第一个?前的内容- Returns:
- UrlQuery
-
of
public static UrlQuery of(String queryStr, Charset charset, boolean autoRemovePath, UrlQuery.EncodeMode encodeMode) 构建UrlQuery- Parameters:
queryStr- 初始化的查询字符串charset- decode用的编码,null表示不做decodeautoRemovePath- 是否自动去除path部分,true则自动去除第一个?前的内容encodeMode- 编码模式。- Returns:
- UrlQuery
-
of
构建UrlQuery- Returns:
- UrlQuery
-
of
构建UrlQuery- Parameters:
encodeMode- 编码模式- Returns:
- UrlQuery
-
of
构建UrlQuery- Parameters:
queryMap- 初始化的查询键值对- Returns:
- UrlQuery
-
of
构建UrlQuery- Parameters:
queryMap- 初始化的查询键值对encodeMode- 编码模式- Returns:
- UrlQuery
-
setEncodeMode
设置编码模式 根据不同场景以及不同环境,对Query中的name和value采用不同的编码策略- Parameters:
encodeMode- 编码模式- Returns:
- this
-
add
增加键值对- Parameters:
key- 键value- 值,集合和数组转换为逗号分隔形式- Returns:
- this
-
addAll
批量增加键值对- Parameters:
queryMap- query中的键值对- Returns:
- this
-
parse
解析URL中的查询字符串- Parameters:
queryStr- 查询字符串,类似于key1=v1&key2=&key3=v3charset- decode编码,null表示不做decode- Returns:
- this
-
parse
解析URL中的查询字符串- Parameters:
queryStr- 查询字符串,类似于key1=v1&key2=&key3=v3charset- decode编码,null表示不做decodeautoRemovePath- 是否自动去除path部分,true则自动去除第一个?前的内容- Returns:
- this
-
getQueryMap
获得查询的Map- Returns:
- 查询的Map,只读
-
get
获取查询值- Parameters:
key- 键- Returns:
- 值
-
build
构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下:- 如果key为
null,则这个键值对忽略 - 如果value为
null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式
- Parameters:
charset- encode编码,null表示不做encode编码- Returns:
- URL查询字符串
- 如果key为
-
build
构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下:- 如果key为
null,则这个键值对忽略 - 如果value为
null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式
- Parameters:
charset- encode编码,null表示不做encode编码encodePercent- 是否编码`%`- Returns:
- URL查询字符串
- 如果key为
-
build
构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下:- 如果key为
null,则这个键值对忽略 - 如果value为
null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式
- Parameters:
keyCoder- 键值对中键的编码器valueCoder- 键值对中值的编码器charset- encode编码,null表示不做encode编码- Returns:
- URL查询字符串
- 如果key为
-
build
public String build(PercentCodec keyCoder, PercentCodec valueCoder, Charset charset, boolean encodePercent) 构建URL查询字符串,即将key-value键值对转换为key1=v1&key2=v2&key3=v3形式。 对于null处理规则如下:- 如果key为
null,则这个键值对忽略 - 如果value为
null,只保留key,如key1对应value为null生成类似于key1&key2=v2形式
- Parameters:
keyCoder- 键值对中键的编码器valueCoder- 键值对中值的编码器charset- encode编码,null表示不做encode编码encodePercent- 是否编码`%`- Returns:
- URL查询字符串
- 如果key为
-
toString
生成查询字符串,类似于aaa=111&bbb=222 此方法不对任何特殊字符编码,仅用于输出显示
-