org.apache.http.message.HeaderValueParser |
Known Indirect Subclasses |
Interface for parsing header values into elements. Instances of this interface are expected to be stateless and thread-safe.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Parses a header value into elements.
|
||||||||||
|
Parses a single header element.
|
||||||||||
|
Parses a name=value specification, where the = and value are optional.
|
||||||||||
|
Parses a list of name-value pairs.
|
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 |
ParseException | in case of a parse error |
---|
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 |
ParseException | in case of a parse error |
---|
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
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 |
ParseException | in case of a parse error |
---|