Most visited

Recently visited

Added in API level 1

UrlQuerySanitizer

public class UrlQuerySanitizer
extends Object

java.lang.Object
   ↳ android.net.UrlQuerySanitizer


清理URL的查询部分。 简单示例: UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(); sanitizer.setAllowUnregisteredParamaters(true); sanitizer.parseUrl("http://example.com/?name=Joe+User"); String name = sanitizer.getValue("name")); // name now contains "Joe_User"注册ValueSanitizers以自定义各个参数的消毒方式: UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(); sanitizer.registerParamater("name", UrlQuerySanitizer.createSpaceLegal()); sanitizer.parseUrl("http://example.com/?name=Joe+User"); String name = sanitizer.getValue("name")); // name now contains "Joe User". (The string is first decoded, which // converts the '+' to a ' '. Then the string is sanitized, which // converts the ' ' to an '_'. (The ' ' is converted because the default unregistered parameter sanitizer does not allow any special characters, and ' ' is a special character.)有几种创建ValueSanitizer的方法。 为了增加复杂性:

  1. Call one of the UrlQuerySanitizer.createXXX() methods.
  2. Construct your own instance of UrlQuerySanitizer.IllegalCharacterValueSanitizer.
  3. Subclass UrlQuerySanitizer.ValueSanitizer to define your own value sanitizer.

Summary

Nested classes

class UrlQuerySanitizer.IllegalCharacterValueSanitizer

根据它们包含的字符来净化值。

class UrlQuerySanitizer.ParameterValuePair

一个保存参数 - 值对的简单元组。

interface UrlQuerySanitizer.ValueSanitizer

用于清理单个查询值的函子。

Public constructors

UrlQuerySanitizer()

构造一个UrlQuerySanitizer。

UrlQuerySanitizer(String url)

构造一个UrlQuerySanitizer并分析一个URL。

Public methods

static final UrlQuerySanitizer.ValueSanitizer getAllButNulAndAngleBracketsLegal()

返回一个值清理器,允许除尖括号('<'和'>')和Nul('\ 0')以外的任何特殊字符。

static final UrlQuerySanitizer.ValueSanitizer getAllButNulLegal()

返回一个值清理器,允许除Nul('\ 0')字符之外的所有内容。

static final UrlQuerySanitizer.ValueSanitizer getAllButWhitespaceLegal()

返回一个值清理器,允许除Nul('\ 0')字符,空格('')和其他空白字符以外的所有内容。

static final UrlQuerySanitizer.ValueSanitizer getAllIllegal()

返回不允许任何特殊字符的值清理程序,也不允许脚本URL。

boolean getAllowUnregisteredParamaters()

获取是否允许未注册的参数。

static final UrlQuerySanitizer.ValueSanitizer getAmpAndSpaceLegal()

返回一个不允许除&符号('&')和空格('')以外的任何特殊字符的值清理程序。

static final UrlQuerySanitizer.ValueSanitizer getAmpLegal()

返回一个不允许任何特殊字符('&')除外的值清理程序。

UrlQuerySanitizer.ValueSanitizer getEffectiveValueSanitizer(String parameter)

获取参数的有效值消毒剂。

List<UrlQuerySanitizer.ParameterValuePair> getParameterList()

已清理查询中所有参数值对的数组列表,按它们在查询中出现的顺序排列。

Set<String> getParameterSet()

获取已清理查询中的所有参数集。

boolean getPreferFirstRepeatedParameter()

获取是否首选出现重复参数。

static final UrlQuerySanitizer.ValueSanitizer getSpaceLegal()

返回一个不允许除空格('')以外的任何特殊字符的值清理程序。

UrlQuerySanitizer.ValueSanitizer getUnregisteredParameterValueSanitizer()

获取处理未注册参数值时使用的当前值消毒剂。

static final UrlQuerySanitizer.ValueSanitizer getUrlAndSpaceLegal()

返回值sanitizer,允许编码的URL使用所有字符并允许空格,这在编码的URL中在技术上不合法,但通常会出现。

static final UrlQuerySanitizer.ValueSanitizer getUrlLegal()

返回值sanitizer,允许编码的URL使用所有字符。

String getValue(String parameter)

获取当前清理查询中参数的值。

UrlQuerySanitizer.ValueSanitizer getValueSanitizer(String parameter)

获取参数的价值净化器。

boolean hasParameter(String parameter)

检查当前清理查询中是否存在参数。

void parseQuery(String query)

解析查询。

void parseUrl(String url)

从编码的URL中解析查询参数。

void registerParameter(String parameter, UrlQuerySanitizer.ValueSanitizer valueSanitizer)

为特定参数注册一个值清理程序。

void registerParameters(String[] parameters, UrlQuerySanitizer.ValueSanitizer valueSanitizer)

为一组参数注册一个值清理器。

void setAllowUnregisteredParamaters(boolean allowUnregisteredParamaters)

设置是否允许未注册的参数。

void setPreferFirstRepeatedParameter(boolean preferFirstRepeatedParameter)

设置是否首选出现重复参数。

void setUnregisteredParameterValueSanitizer(UrlQuerySanitizer.ValueSanitizer sanitizer)

设置处理未注册参数值时使用的值清理程序。

String unescape(String string)

使用逃脱的字符串。

Protected methods

void addSanitizedEntry(String parameter, String value)

记录消毒的参数值对。

void clear()

清除现有条目。

int decodeHexDigit(char c)

将表示十六进制数字的字符转换为整数。

boolean isHexDigit(char c)

测试一个字符是否为十六进制数字。

void parseEntry(String parameter, String value)

解析转义的参数值对。

Inherited methods

From class java.lang.Object

Public constructors

UrlQuerySanitizer

Added in API level 1
UrlQuerySanitizer ()

构造一个UrlQuerySanitizer。

默认值:

  • unregistered parameters are not allowed.
  • the last instance of a repeated parameter is preferred.
  • The default value sanitizer is an AllIllegal value sanitizer.

UrlQuerySanitizer

Added in API level 1
UrlQuerySanitizer (String url)

构造一个UrlQuerySanitizer并分析一个URL。 为了方便,默认的解析行为是可接受的。

由于URL在构造函数返回之前被解析,因此没有机会配置清理程序来更改解析行为。

UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(myUrl); String name = sanitizer.getValue("name");

默认值:

  • unregistered parameters are allowed.
  • the last instance of a repeated parameter is preferred.
  • The default value sanitizer is an AllIllegal value sanitizer.

      Parameters
      url String

Public methods

getAllButNulAndAngleBracketsLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAllButNulAndAngleBracketsLegal ()

返回一个值清理器,允许除尖括号('<'和'>')和Nul('\ 0')以外的任何特殊字符。 允许脚本URL。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getAllButNulLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAllButNulLegal ()

返回一个值清理器,允许除Nul('\ 0')字符之外的所有内容。 脚本网址是允许的。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getAllButWhitespaceLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAllButWhitespaceLegal ()

返回一个值清理器,允许除Nul('\ 0')字符,空格('')和其他空白字符以外的所有内容。 脚本网址是允许的。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getAllIllegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAllIllegal ()

返回不允许任何特殊字符的值清理程序,也不允许脚本URL。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getAllowUnregisteredParamaters

Added in API level 1
boolean getAllowUnregisteredParamaters ()

获取是否允许未注册的参数。 如果不允许,当查询被解析时它们将被删除。

Returns
boolean true if unregistered parameters are allowed.

也可以看看:

getAmpAndSpaceLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAmpAndSpaceLegal ()

返回一个不允许除&符号('&')和空格('')以外的任何特殊字符的值清理程序。 不允许脚本网址。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getAmpLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getAmpLegal ()

返回一个不允许任何特殊字符('&')除外的值清理程序。 不允许脚本网址。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getEffectiveValueSanitizer

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getEffectiveValueSanitizer (String parameter)

获取参数的有效值消毒剂。 像getValueSanitizer一样,除非没有为参数注册值清除程序,并且允许未注册的参数,则会返回默认值清理程序。

Parameters
parameter String: an unescaped parameter
Returns
UrlQuerySanitizer.ValueSanitizer the effective value sanitizer for a parameter.

getParameterList

Added in API level 1
List<UrlQuerySanitizer.ParameterValuePair> getParameterList ()

已清理查询中所有参数值对的数组列表,按它们在查询中出现的顺序排列。 可能包含重复的参数。

注意:不要修改此列表。 将其视为只读列表。

Returns
List<UrlQuerySanitizer.ParameterValuePair>

getParameterSet

Added in API level 1
Set<String> getParameterSet ()

获取已清理查询中的所有参数集。

注意:不要修改这个集合。 将其视为只读集。

Returns
Set<String> all the parameters found in the current query.

getPreferFirstRepeatedParameter

Added in API level 1
boolean getPreferFirstRepeatedParameter ()

获取是否首选出现重复参数。

Returns
boolean true if the first occurrence of a repeated parameter is preferred.

也可以看看:

getSpaceLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getSpaceLegal ()

返回一个不允许除空格('')以外的任何特殊字符的值清理程序。 不允许脚本网址。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getUnregisteredParameterValueSanitizer

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getUnregisteredParameterValueSanitizer ()

获取处理未注册参数值时使用的当前值消毒剂。

注意:默认的未注册参数值清理器不允许任何特殊字符,类似于通过调用createAllIllegal返回的内容。

Returns
UrlQuerySanitizer.ValueSanitizer the current ValueSanitizer used to sanitize unregistered parameter values.

getUrlAndSpaceLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getUrlAndSpaceLegal ()

返回值sanitizer,允许编码的URL使用所有字符并允许空格,这在编码的URL中在技术上不合法,但通常会出现。 不允许脚本网址。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getUrlLegal

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getUrlLegal ()

返回值sanitizer,允许编码的URL使用所有字符。 不允许脚本网址。

Returns
UrlQuerySanitizer.ValueSanitizer a value sanitizer

getValue

Added in API level 1
String getValue (String parameter)

获取当前清理查询中参数的值。 如果参数未退出,则返回null。

Parameters
parameter String: the unencoded name of a parameter.
Returns
String the sanitized unencoded value of the parameter, or null if the parameter does not exist.

getValueSanitizer

Added in API level 1
UrlQuerySanitizer.ValueSanitizer getValueSanitizer (String parameter)

获取参数的价值净化器。 如果没有为参数注册值清理程序,则返回null。

Parameters
parameter String: the unescaped parameter
Returns
UrlQuerySanitizer.ValueSanitizer the currently registered value sanitizer for this parameter.

也可以看看:

hasParameter

Added in API level 1
boolean hasParameter (String parameter)

检查当前清理查询中是否存在参数。

Parameters
parameter String: the unencoded name of a parameter.
Returns
boolean true if the paramater exists in the current sanitized queary.

parseQuery

Added in API level 1
void parseQuery (String query)

解析查询。 查询字符串是任意数量的由任意非零数的和号分隔的参数值子句。 参数值子句是一个参数,后跟一个等号,后跟一个值。 如果等号丢失,则该值被假定为空字符串。

Parameters
query String: the query to parse.

parseUrl

Added in API level 1
void parseUrl (String url)

从编码的URL中解析查询参数。 通过从URL中提取查询部分并调用parseQuery()来工作。 如果没有查询部分,则将其视为查询部分是空字符串。

Parameters
url String: the encoded URL to parse.

registerParameter

Added in API level 1
void registerParameter (String parameter, 
                UrlQuerySanitizer.ValueSanitizer valueSanitizer)

为特定参数注册一个值清理程序。 也可以用来替换或删除已经设定的价值净化剂。

为特定参数注册非空值消毒杀菌剂会使该参数成为注册参数。

Parameters
parameter String: an unencoded parameter name
valueSanitizer UrlQuerySanitizer.ValueSanitizer: the value sanitizer to use for a particular parameter. May be null in order to unregister that parameter.

也可以看看:

registerParameters

Added in API level 1
void registerParameters (String[] parameters, 
                UrlQuerySanitizer.ValueSanitizer valueSanitizer)

为一组参数注册一个值清理器。

Parameters
parameters String: An array of unencoded parameter names.

也可以看看:

setAllowUnregisteredParamaters

Added in API level 1
void setAllowUnregisteredParamaters (boolean allowUnregisteredParamaters)

设置是否允许未注册的参数。 如果它们不被允许,那么当查询被消毒时它们将被丢弃。

默认为false。

Parameters
allowUnregisteredParamaters boolean: true to allow unregistered parameters.

也可以看看:

setPreferFirstRepeatedParameter

Added in API level 1
void setPreferFirstRepeatedParameter (boolean preferFirstRepeatedParameter)

设置是否首选出现重复参数。 True表示首选重复参数。 假意味着最后重复的参数是首选。

首选参数是调用getParameter时返回的参数。

默认为false。

Parameters
preferFirstRepeatedParameter boolean: True if the first repeated parameter is preferred.

也可以看看:

setUnregisteredParameterValueSanitizer

Added in API level 1
void setUnregisteredParameterValueSanitizer (UrlQuerySanitizer.ValueSanitizer sanitizer)

设置处理未注册参数值时使用的值清理程序。

Parameters
sanitizer UrlQuerySanitizer.ValueSanitizer: set the ValueSanitizer used to sanitize unregistered parameter values.

unescape

Added in API level 1
String unescape (String string)

使用逃脱的字符串。

  • '+' characters are replaced by ' ' characters.
  • Valid "%xx" escape sequences are replaced by the corresponding unescaped character.
  • Invalid escape sequences such as %1z", are passed through unchanged.

      Parameters
      string String: the escaped string
      Returns
      String the unescaped string.

Protected methods

addSanitizedEntry

Added in API level 1
void addSanitizedEntry (String parameter, 
                String value)

记录消毒的参数值对。 覆盖,如果你想做额外的过滤或验证。

Parameters
parameter String: an unescaped parameter
value String: a sanitized unescaped value

clear

Added in API level 1
void clear ()

清除现有条目。 调用准备分析一个新的查询字符串。

decodeHexDigit

Added in API level 1
int decodeHexDigit (char c)

将表示十六进制数字的字符转换为整数。 如果该字符不是十六进制数字,则返回-1。 大写和小写十六进制数字都是允许的。

Parameters
c char: the hexidecimal digit.
Returns
int the integer value of the hexidecimal digit.

isHexDigit

Added in API level 1
boolean isHexDigit (char c)

测试一个字符是否为十六进制数字。 大写和小写十六进制数字都是允许的。

Parameters
c char: the character to test
Returns
boolean true if c is a hex digit.

parseEntry

Added in API level 1
void parseEntry (String parameter, 
                String value)

解析转义的参数值对。 默认实现会同时使参数和值都出现,然后查找参数的有效值清理程序并使用它来清理该值。 如果一切顺利,则使用未转义的参数和消毒的非转义值调用addSanitizedValue。

Parameters
parameter String: an escaped parameter
value String: an unsanitzied escaped value

Hooray!