UrlQueryFilter
java.lang.Object
|—ohos.utils.net.UrlQueryFilter
public class UrlQueryFilter
extends Object
提供基本的URL查询分析能力,包括过滤无效字符和获取查询参数对。 一个简单的例子如下:
UrlQueryFilter urlFilter = new UrlQueryFilter(); String url = "http://www.xxx:port/xxxx/xxxx?name=tom&name=lily&age=20"; urlFilter.parseUrl(url);
嵌套类摘要
修饰符和类型 | 类 | 描述 |
---|---|---|
static class | UrlQueryFilter.ValueFilter | 表示用于过滤掉查询字符串中的无效字符并将其替换为空格或下划线 (_) 的过滤器。 |
构造函数摘要
构造函数 | 描述 |
---|---|
UrlQueryFilter() | 用于创建 UrlQueryFilter 实例的构造函数。 |
方法总结
修饰符和类型 | 方法 | Description |
---|---|---|
protected void | addParams(Pair<String,String> entry) | 将过滤后的参数键值对添加到内部 List 和 Map 对象。 |
void | allowUnregisteredParameters(boolean allow) | 设置是否允许查询未注册的参数。 |
boolean | containParameter(String paramName) | 根据指定的key检查是否存在查询参数对。 |
static UrlQueryFilter.ValueFilter | filterEncodedUrl() | 获得一个 ValueFilter,它允许编码 URL 中的所有可能字符。 |
static UrlQueryFilter.ValueFilter | filterNulWithSpace() | Obtains a ValueFilter object that can replace /0 with a space. |
boolean | getFirstPriority() | 获取可以将 /0 替换为空格的 ValueFilter 对象。 |
UrlQueryFilter.ValueFilter | getParameterFilter(String name) | 获取指定参数键的ValueFilter。 |
List<Pair<String,String>> | getParamsListFiltered() | 获取所有查询参数在 URL 中出现的顺序的 List<Pair<String,String>> 值。 |
Set<String> | getParamsSetFiltered() | 获取包含所有查询参数的键的 Set<String> 对象。 |
String | getParamValue(String paramName) | 获取与 URL 查询参数中指定键匹配的值。 |
UrlQueryFilter.ValueFilter | getUnregisteredParamFilter() | 获取用于过滤掉未注册参数的ValueFilter。 |
boolean | isAllowUnregisteredParameters() | 检查是否允许查询未注册的参数。 |
protected void | parseParamPair(String name, String value) | 解析转义的查询参数对。 |
void | parseUrl(String url) | 解析指定的 URL。 |
void | parseUrlQuery(String query) | 解析 URL 的指定查询字符串。 |
void | registerParameterFilter(String name, UrlQueryFilter.ValueFilter filter) | 为参数键指定一个 ValueFilter 以过滤掉该键值的无效字符。 |
void | setFirstPriority(boolean value) | 设置查询参数对中重复键的值优先级。 |
void | setUnregisteredParamFilter(UrlQueryFilter.ValueFilter filter) | 为未注册的参数键设置一个 ValueFilter。 |
String | unescapeString(String str) | 对指定的字符串进行转义。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
UrlQueryFilter
public UrlQueryFilter()
用于创建 UrlQueryFilter 实例的构造函数。
方法详情
filterNulWithSpace
public static final UrlQueryFilter.ValueFilter filterNulWithSpace()
获取可以将 /0 替换为空格的 ValueFilter 对象。
返回:
返回获取的 ValueFilter 对象。
filterEncodedUrl
public static final UrlQueryFilter.ValueFilter filterEncodedUrl()
获得一个 ValueFilter,它允许编码 URL 中的所有可能字符。
脚本 URL 不支持此方法。
返回:
返回ValueFilter
getParamsListFiltered
public List<Pair<String,String>> getParamsListFiltered()
获取所有查询参数在 URL 中出现的顺序的 List<Pair<String,String>> 值。
您应该在执行 parseUrl(java.lang.String) 方法后调用此方法。
返回:
返回一个 List<Pair<String, String>> 对象,该对象包含过滤后的所有 URL 查询参数对。
getParamsSetFiltered
public Set<String> getParamsSetFiltered()
获取包含所有查询参数的键的 Set<String> 对象。
您应该在执行 parseUrl(java.lang.String) 方法后调用此方法。 Set<String> 对象不包含重复键。
返回:
返回包含所有查询参数的键的 Set<String> 对象。
setFirstPriority
public void setFirstPriority(boolean value)
设置查询参数对中重复键的值优先级。
如果 value 设置为 true,则匹配第一个 key 的 value 具有最高优先级。 如果 value 为 false(默认设置),则匹配最后一个键的 value 具有最高优先级。
参数:
参数名称 | 参数描述 |
---|---|
value | 指定如果参数对中存在重复键,则匹配第一个键的值是否具有最高优先级。 |
getFirstPriority
public boolean getFirstPriority()
检查与参数对中第一个重复键匹配的值是否具有最高优先级。
返回:
如果第一个键的值具有最高优先级,则返回 true; 否则返回 false。
getParamValue
public String getParamValue(String paramName)
获取与 URL 查询参数中指定键匹配的值。
如果键不存在,则返回 null。
参数:
参数名称 | 参数描述 |
---|---|
paramName | 指示要在查询参数中匹配的键。 |
返回:
如果找到匹配项,则返回值; 否则返回 null。
containParameter
public boolean containParameter(String paramName)
根据指定的key检查是否存在查询参数对。
参数:
参数名称 | 参数描述 |
---|---|
paramName | 表示要检查的查询参数对的键。 |
返回:
如果查询参数对存在,则返回 true; 否则返回 false。
parseUrl
public void parseUrl(String url)
解析指定的 URL。
该方法提取 URL 中的查询字符串,然后调用 parseUrlQuery(java.lang.String) 来解析查询字符串。
参数:
参数名称 | 参数描述 |
---|---|
url | 表示要解析的URL。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果特定 url 为空,则抛出此异常。 |
parseUrlQuery
public void parseUrlQuery(String query)
解析 URL 的指定查询字符串。
如果没有给key赋值,查询参数的key-value对会被解析为空String。
参数:
参数名称 | 参数描述 |
---|---|
query | 指示要解析的 URL 查询字符串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果特定查询为空,则引发此异常。 |
registerParameterFilter
public void registerParameterFilter(String name, UrlQueryFilter.ValueFilter filter)
为参数键指定一个 ValueFilter 以过滤掉该键值的无效字符。
参数:
参数名称 | 参数描述 |
---|---|
name | 表示参数的key。 |
filter | 指示要为键指定的 ValueFilter。 如果该值为空,则已注册的键的 ValueFilter 将被移除。 |
getParameterFilter
public UrlQueryFilter.ValueFilter getParameterFilter(String name)
获取指定参数键的ValueFilter。
如果参数key没有注册,则返回null。
参数:
参数名称 | 参数描述 |
---|---|
name | 表示获取其ValueFilter的key。 |
返回:
如果参数键已注册,则返回 ValueFilter; 如果找不到密钥,则返回 null。
setUnregisteredParamFilter
public void setUnregisteredParamFilter(UrlQueryFilter.ValueFilter filter)
为未注册的参数键设置一个 ValueFilter。
如果没有设置 ValueFilter 但允许未注册的参数,则默认的 ValueFilter 将用于过滤掉所有特殊字符。
参数:
参数名称 | 参数描述 |
---|---|
filter | 表示用于过滤未注册参数值的 ValueFilter。 |
getUnregisteredParamFilter
public UrlQueryFilter.ValueFilter getUnregisteredParamFilter()
获取用于过滤掉未注册参数的ValueFilter。
返回:
返回ValueFilter。
allowUnregisteredParameters
public void allowUnregisteredParameters(boolean allow)
设置是否允许查询未注册的参数。
默认情况下,未注册的参数不能用于查询。
参数:
参数名称 | 参数描述 |
---|---|
allow | 指定是否允许查询未注册的参数。 true 表示允许未注册的参数,false 表示相反。 |
isAllowUnregisteredParameters
public boolean isAllowUnregisteredParameters()
检查是否允许查询未注册的参数。
默认情况下,未注册的参数不能用于查询。
返回:
如果允许未注册的参数,则返回 true; 否则返回 false。
unescapeString
public String unescapeString(String str)
对指定的字符串进行转义。
此方法将字符串中的 ‘+’ 替换为 ‘ ‘,并将转义字符 ‘%xx’ 替换为相应的字符。 无效的转义字符不会被替换。
参数:
参数名称 | 参数描述 |
---|---|
str | 指示要取消转义的字符串。 |
返回:
返回未转义的字符串。
parseParamPair
protected void parseParamPair(String name, String value)
解析转义的查询参数对。
这个方法可以重载。 默认情况下,转义参数对使用其键的 ValueFilter 来过滤其值。 过滤后的参数对存储在内部 Map 和 List 对象中。
参数:
参数名称 | 参数描述 |
---|---|
name | 表示要解析的查询参数对的键。 |
value | 指示要解析的查询参数对的值。 |
addParams
protected void addParams(Pair<String,String> entry)
将过滤后的参数键值对添加到内部 List 和 Map 对象。
如果传递给 setFirstPriority(boolean) 方法的 value 参数设置为 true,则在重复 key 的情况下使用匹配第一个添加 key 的 value; 否则,与最后添加的键匹配的值生效。
参数:
参数名称 | 参数描述 |
---|---|
entry | 表示过滤后要添加的参数键值对。 |