Interface HeaderValueParser
- All Known Implementing Classes:
BasicHeaderValueParser
public interface HeaderValueParser
- Since:
- 4.0
- Version:
- $Revision: 589325 $ $Date: 2007-10-28 03:37:56 -0700 (Sun, 28 Oct 2007) $
-
Method Summary
Modifier and Type Method Description HeaderElement[]parseElements(CharArrayBuffer buffer, ParserCursor cursor)Parses a header value into elements.HeaderElementparseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)Parses a single header element.NameValuePairparseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor)Parses a name=value specification, where the = and value are optional.NameValuePair[]parseParameters(CharArrayBuffer buffer, ParserCursor cursor)Parses a list of name-value pairs.
-
Method Details
-
parseElements
Parses a header value into elements. Parse errors are indicated asRuntimeException.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 = "\" charAny 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.- Parameters:
buffer- buffer holding the header value to parsecursor- the parser cursor containing the current position and the bounds within the buffer for the parsing operation- Returns:
- an array holding all elements of the header value
- Throws:
ParseException- in case of a parse error
-
parseHeaderElement
HeaderElement parseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor) throws ParseExceptionParses a single header element. A header element consist of a semicolon-separate list of name=value definitions.- Parameters:
buffer- buffer holding the element to parsecursor- the parser cursor containing the current position and the bounds within the buffer for the parsing operation- Returns:
- the parsed element
- Throws:
ParseException- in case of a parse error
-
parseParameters
Parses a list of name-value pairs. These lists are used to specify parameters to a header element. Parse errors are indicated asRuntimeException.This method comforms to the generic grammar and formatting rules outlined in the Section 2.2 and Section 3.6 of RFC 2616.
2.2 Basic Rules 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
3.6 Transfer Codings Parameters are in the form of attribute/value pairs.
parameter = attribute "=" value attribute = token value = token | quoted-string
- Parameters:
buffer- buffer holding the name-value list to parsecursor- the parser cursor containing the current position and the bounds within the buffer for the parsing operation- Returns:
- an array holding all items of the name-value list
- Throws:
ParseException- in case of a parse error
-
parseNameValuePair
NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor) throws ParseExceptionParses a name=value specification, where the = and value are optional.- Parameters:
buffer- the buffer holding the name-value pair to parsecursor- the parser cursor containing the current position and the bounds within the buffer for the parsing operation- Returns:
- the name-value pair, where the value is
nullif no value is specified - Throws:
ParseException
-