java.lang.Object | |
↳ | org.apache.http.message.BasicHeaderValueParser |
Basic implementation for parsing header values into elements. Instances of this class are stateless and thread-safe. Derived classes are expected to maintain these properties.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
DEFAULT | A default instance of this class, for use as default or fallback. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Parses elements with the given parser.
|
||||||||||
|
Parses a header value into elements.
|
||||||||||
|
Parses an element with the given parser.
|
||||||||||
|
Parses a single header element.
|
||||||||||
|
|
||||||||||
|
Parses a name=value specification, where the = and value are optional.
|
||||||||||
|
Parses a name-value-pair with the given parser.
|
||||||||||
|
Parses a list of name-value pairs.
|
||||||||||
|
Parses parameters with the given parser.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Creates a header element.
|
||||||||||
|
Creates a name-value pair.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
|||||||||||
From interface
org.apache.http.message.HeaderValueParser
|
A default instance of this class, for use as default or fallback.
Note that
BasicHeaderValueParser
is not a singleton, there
can be many instances of the class itself and of derived classes.
The instance here provides non-customized, default behavior.
Parses elements with the given parser.
value | the header value to parse |
---|---|
parser |
the parser to use, or
null
for default
|
null
ParseException |
---|
Parses a header value into elements.
Parse errors are indicated as
RuntimeException
.
Some HTTP headers (such as the set-cookie header) have values that can be decomposed into multiple elements. In order to be processed by this parser, such headers must be in the following form:
header = [ element ] *( "," [ element ] ) element = name [ "=" [ value ] ] *( ";" [ param ] ) param = name [ "=" [ value ] ] name = token value = ( token | quoted-string ) token = 1*<any char except "=", ",", ";", <"> and white space> quoted-string = <"> *( text | quoted-char ) <"> text = any char except <"> quoted-char = "\" char
Any amount of white space is allowed between any part of the
header, element or param and is ignored. A missing value in any
element or param will be stored as the empty
String
;
if the "=" is also missing
null
will be stored instead.
buffer | buffer holding the header value to parse |
---|---|
cursor | the parser cursor containing the current position and the bounds within the buffer for the parsing operation |
Parses an element with the given parser.
value | the header element to parse |
---|---|
parser |
the parser to use, or
null
for default
|
ParseException |
---|
Parses a single header element. A header element consist of a semicolon-separate list of name=value definitions.
buffer | buffer holding the element to parse |
---|---|
cursor | the parser cursor containing the current position and the bounds within the buffer for the parsing operation |
Parses a name=value specification, where the = and value are optional.
buffer | the buffer holding the name-value pair to parse |
---|---|
cursor | the parser cursor containing the current position and the bounds within the buffer for the parsing operation |
null
if no value is specified
Parses a name-value-pair with the given parser.
value | the NVP to parse |
---|---|
parser |
the parser to use, or
null
for default
|
ParseException |
---|
Parses a list of name-value pairs.
These lists are used to specify parameters to a header element.
Parse errors are indicated as
RuntimeException
.
This method comforms to the generic grammar and formatting rules outlined in the Section 2.2 and Section 3.6 of RFC 2616 .
The following rules are used throughout this specification to describe basic parsing constructs. The US-ASCII coded character set is defined by ANSI X3.4-1986.
OCTET =CHAR = UPALPHA = LOALPHA = ALPHA = UPALPHA | LOALPHA DIGIT = CTL = CR = LF = SP = HT = <"> =
Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters MUST be in a quoted string to be used within a parameter value (as defined in section 3.6).
token = 1*separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT
A string of text is parsed as a single word if it is quoted using double-quote marks.
quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) qdtext =<">>
The backslash character ("\") MAY be used as a single-character quoting mechanism only within quoted-string and comment constructs.
quoted-pair = "\" CHAR
Parameters are in the form of attribute/value pairs.
parameter = attribute "=" value attribute = token value = token | quoted-string
buffer | buffer holding the name-value list to parse |
---|---|
cursor | the parser cursor containing the current position and the bounds within the buffer for the parsing operation |
Parses parameters with the given parser.
value | the parameter list to parse |
---|---|
parser |
the parser to use, or
null
for default
|
null
ParseException |
---|
Creates a header element.
Called from
parseHeaderElement(String, HeaderValueParser)
.
Creates a name-value pair.
Called from
parseNameValuePair(String, HeaderValueParser)
.
name | the name |
---|---|
value |
the value, or
null
|