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.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
BasicHeaderValueParser | 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 |