阅读(1003) (7)

鸿蒙OS UrlQueryFilter

2022-04-12 14:10:19 更新

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 继承的方法
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

构造函数详细信息

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 表示过滤后要添加的参数键值对。