鴻蒙OS UrlQueryFilter

2022-04-12 17:48 更新

UrlQueryFilter

java.lang.Object

|---ohos.utils.net.UrlQueryFilter

public class UrlQueryFilter
extends Object

提供基本的URL查詢分析能力,包括過濾無效字符和獲取查詢參數(shù)對。 一個簡單的例子如下:

 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 表示用于過濾掉查詢字符串中的無效字符并將其替換為空格或下劃線 (_) 的過濾器。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
UrlQueryFilter() 用于創(chuàng)建 UrlQueryFilter 實(shí)例的構(gòu)造函數(shù)。

方法總結(jié)

修飾符和類型 方法 Description
protected void addParams(Pair<String,String> entry) 將過濾后的參數(shù)鍵值對添加到內(nèi)部 List 和 Map 對象。
void allowUnregisteredParameters(boolean allow) 設(shè)置是否允許查詢未注冊的參數(shù)。
boolean containParameter(String paramName) 根據(jù)指定的key檢查是否存在查詢參數(shù)對。
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) 獲取指定參數(shù)鍵的ValueFilter。
List<Pair<String,String>> getParamsListFiltered() 獲取所有查詢參數(shù)在 URL 中出現(xiàn)的順序的 List<Pair<String,String>> 值。
Set<String> getParamsSetFiltered() 獲取包含所有查詢參數(shù)的鍵的 Set<String> 對象。
String getParamValue(String paramName) 獲取與 URL 查詢參數(shù)中指定鍵匹配的值。
UrlQueryFilter.ValueFilter getUnregisteredParamFilter() 獲取用于過濾掉未注冊參數(shù)的ValueFilter。
boolean isAllowUnregisteredParameters() 檢查是否允許查詢未注冊的參數(shù)。
protected void parseParamPair(String name, String value) 解析轉(zhuǎn)義的查詢參數(shù)對。
void parseUrl(String url) 解析指定的 URL。
void parseUrlQuery(String query) 解析 URL 的指定查詢字符串。
void registerParameterFilter(String name, UrlQueryFilter.ValueFilter filter) 為參數(shù)鍵指定一個 ValueFilter 以過濾掉該鍵值的無效字符。
void setFirstPriority(boolean value) 設(shè)置查詢參數(shù)對中重復(fù)鍵的值優(yōu)先級。
void setUnregisteredParamFilter(UrlQueryFilter.ValueFilter filter) 為未注冊的參數(shù)鍵設(shè)置一個 ValueFilter。
String unescapeString(String str) 對指定的字符串進(jìn)行轉(zhuǎn)義。
從類 java.lang.Object 繼承的方法
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

構(gòu)造函數(shù)詳細(xì)信息

UrlQueryFilter

public UrlQueryFilter()

用于創(chuàng)建 UrlQueryFilter 實(shí)例的構(gòu)造函數(shù)。

方法詳情

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()

獲取所有查詢參數(shù)在 URL 中出現(xiàn)的順序的 List<Pair<String,String>> 值。

您應(yīng)該在執(zhí)行 parseUrl(java.lang.String) 方法后調(diào)用此方法。

返回:

返回一個 List<Pair<String, String>> 對象,該對象包含過濾后的所有 URL 查詢參數(shù)對。

getParamsSetFiltered

public Set<String> getParamsSetFiltered()

獲取包含所有查詢參數(shù)的鍵的 Set<String> 對象。

您應(yīng)該在執(zhí)行 parseUrl(java.lang.String) 方法后調(diào)用此方法。 Set<String> 對象不包含重復(fù)鍵。

返回:

返回包含所有查詢參數(shù)的鍵的 Set<String> 對象。

setFirstPriority

public void setFirstPriority(boolean value)

設(shè)置查詢參數(shù)對中重復(fù)鍵的值優(yōu)先級。

如果 value 設(shè)置為 true,則匹配第一個 key 的 value 具有最高優(yōu)先級。 如果 value 為 false(默認(rèn)設(shè)置),則匹配最后一個鍵的 value 具有最高優(yōu)先級。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 指定如果參數(shù)對中存在重復(fù)鍵,則匹配第一個鍵的值是否具有最高優(yōu)先級。

getFirstPriority

public boolean getFirstPriority()

檢查與參數(shù)對中第一個重復(fù)鍵匹配的值是否具有最高優(yōu)先級。

返回:

如果第一個鍵的值具有最高優(yōu)先級,則返回 true; 否則返回 false。

getParamValue

public String getParamValue(String paramName)

獲取與 URL 查詢參數(shù)中指定鍵匹配的值。

如果鍵不存在,則返回 null。

參數(shù):

參數(shù)名稱 參數(shù)描述
paramName 指示要在查詢參數(shù)中匹配的鍵。

返回:

如果找到匹配項(xiàng),則返回值; 否則返回 null。

containParameter

public boolean containParameter(String paramName)

根據(jù)指定的key檢查是否存在查詢參數(shù)對。

參數(shù):

參數(shù)名稱 參數(shù)描述
paramName 表示要檢查的查詢參數(shù)對的鍵。

返回:

如果查詢參數(shù)對存在,則返回 true; 否則返回 false。

parseUrl

public void parseUrl(String url)

解析指定的 URL。

該方法提取 URL 中的查詢字符串,然后調(diào)用 parseUrlQuery(java.lang.String) 來解析查詢字符串。

參數(shù):

參數(shù)名稱 參數(shù)描述
url 表示要解析的URL。

Throws:

Throw名稱 Throw描述
NullPointerException 如果特定 url 為空,則拋出此異常。

parseUrlQuery

public void parseUrlQuery(String query)

解析 URL 的指定查詢字符串。

如果沒有給key賦值,查詢參數(shù)的key-value對會被解析為空String。

參數(shù):

參數(shù)名稱 參數(shù)描述
query 指示要解析的 URL 查詢字符串。

Throws:

Throw名稱 Throw描述
NullPointerException 如果特定查詢?yōu)榭?,則引發(fā)此異常。

registerParameterFilter

public void registerParameterFilter(String name, UrlQueryFilter.ValueFilter filter)

為參數(shù)鍵指定一個 ValueFilter 以過濾掉該鍵值的無效字符。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 表示參數(shù)的key。
filter 指示要為鍵指定的 ValueFilter。 如果該值為空,則已注冊的鍵的 ValueFilter 將被移除。

getParameterFilter

public UrlQueryFilter.ValueFilter getParameterFilter(String name)

獲取指定參數(shù)鍵的ValueFilter。

如果參數(shù)key沒有注冊,則返回null。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 表示獲取其ValueFilter的key。

返回:

如果參數(shù)鍵已注冊,則返回 ValueFilter; 如果找不到密鑰,則返回 null。

setUnregisteredParamFilter

public void setUnregisteredParamFilter(UrlQueryFilter.ValueFilter filter)

為未注冊的參數(shù)鍵設(shè)置一個 ValueFilter。

如果沒有設(shè)置 ValueFilter 但允許未注冊的參數(shù),則默認(rèn)的 ValueFilter 將用于過濾掉所有特殊字符。

參數(shù):

參數(shù)名稱 參數(shù)描述
filter 表示用于過濾未注冊參數(shù)值的 ValueFilter。

getUnregisteredParamFilter

public UrlQueryFilter.ValueFilter getUnregisteredParamFilter()

獲取用于過濾掉未注冊參數(shù)的ValueFilter。

返回:

返回ValueFilter。

allowUnregisteredParameters

public void allowUnregisteredParameters(boolean allow)

設(shè)置是否允許查詢未注冊的參數(shù)。

默認(rèn)情況下,未注冊的參數(shù)不能用于查詢。

參數(shù):

參數(shù)名稱 參數(shù)描述
allow 指定是否允許查詢未注冊的參數(shù)。 true 表示允許未注冊的參數(shù),false 表示相反。

isAllowUnregisteredParameters

public boolean isAllowUnregisteredParameters()

檢查是否允許查詢未注冊的參數(shù)。

默認(rèn)情況下,未注冊的參數(shù)不能用于查詢。

返回:

如果允許未注冊的參數(shù),則返回 true; 否則返回 false。

unescapeString

public String unescapeString(String str)

對指定的字符串進(jìn)行轉(zhuǎn)義。

此方法將字符串中的 '+' 替換為 ' ',并將轉(zhuǎn)義字符 '%xx' 替換為相應(yīng)的字符。 無效的轉(zhuǎn)義字符不會被替換。

參數(shù):

參數(shù)名稱 參數(shù)描述
str 指示要取消轉(zhuǎn)義的字符串。

返回:

返回未轉(zhuǎn)義的字符串。

parseParamPair

protected void parseParamPair(String name, String value)

解析轉(zhuǎn)義的查詢參數(shù)對。

這個方法可以重載。 默認(rèn)情況下,轉(zhuǎn)義參數(shù)對使用其鍵的 ValueFilter 來過濾其值。 過濾后的參數(shù)對存儲在內(nèi)部 Map 和 List 對象中。

參數(shù):

參數(shù)名稱 參數(shù)描述
name 表示要解析的查詢參數(shù)對的鍵。
value 指示要解析的查詢參數(shù)對的值。

addParams

protected void addParams(Pair<String,String> entry)

將過濾后的參數(shù)鍵值對添加到內(nèi)部 List 和 Map 對象。

如果傳遞給 setFirstPriority(boolean) 方法的 value 參數(shù)設(shè)置為 true,則在重復(fù) key 的情況下使用匹配第一個添加 key 的 value; 否則,與最后添加的鍵匹配的值生效。

參數(shù):

參數(shù)名稱 參數(shù)描述
entry 表示過濾后要添加的參數(shù)鍵值對。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號