Class BasicHeaderValueParser
- All Implemented Interfaces:
HeaderValueParser
public class BasicHeaderValueParser extends Object implements HeaderValueParser
- Since:
- 4.0
- Version:
- $Revision: 595670 $
- Author:
- B.C. Holmes, Park, Sung-Gu, Mike Bowler, Oleg Kalnichevski, and others
-
Field Summary
Fields Modifier and Type Field Description static BasicHeaderValueParserDEFAULTA default instance of this class, for use as default or fallback. -
Constructor Summary
Constructors Constructor Description BasicHeaderValueParser() -
Method Summary
Modifier and Type Method Description protected HeaderElementcreateHeaderElement(String name, String value, NameValuePair[] params)Creates a header element.protected NameValuePaircreateNameValuePair(String name, String value)Creates a name-value pair.static HeaderElement[]parseElements(String value, HeaderValueParser parser)Parses elements with the given parser.HeaderElement[]parseElements(CharArrayBuffer buffer, ParserCursor cursor)Parses a header value into elements.static HeaderElementparseHeaderElement(String value, HeaderValueParser parser)Parses an element with the given parser.HeaderElementparseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)Parses a single header element.static NameValuePairparseNameValuePair(String value, HeaderValueParser parser)Parses a name-value-pair with the given parser.NameValuePairparseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor)Parses a name=value specification, where the = and value are optional.NameValuePairparseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters)static NameValuePair[]parseParameters(String value, HeaderValueParser parser)Parses parameters with the given parser.NameValuePair[]parseParameters(CharArrayBuffer buffer, ParserCursor cursor)Parses a list of name-value pairs.
-
Field Details
-
DEFAULT
A default instance of this class, for use as default or fallback. Note thatBasicHeaderValueParseris not a singleton, there can be many instances of the class itself and of derived classes. The instance here provides non-customized, default behavior.
-
-
Constructor Details
-
BasicHeaderValueParser
public BasicHeaderValueParser()
-
-
Method Details
-
parseElements
public static final HeaderElement[] parseElements(String value, HeaderValueParser parser) throws ParseExceptionParses elements with the given parser.- Parameters:
value- the header value to parseparser- the parser to use, ornullfor default- Returns:
- array holding the header elements, never
null - Throws:
ParseException
-
parseElements
Description copied from interface:HeaderValueParserParses 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.- Specified by:
parseElementsin interfaceHeaderValueParser- 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
-
parseHeaderElement
public static final HeaderElement parseHeaderElement(String value, HeaderValueParser parser) throws ParseExceptionParses an element with the given parser.- Parameters:
value- the header element to parseparser- the parser to use, ornullfor default- Returns:
- the parsed header element
- Throws:
ParseException
-
parseHeaderElement
Description copied from interface:HeaderValueParserParses a single header element. A header element consist of a semicolon-separate list of name=value definitions.- Specified by:
parseHeaderElementin interfaceHeaderValueParser- 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
-
createHeaderElement
Creates a header element. Called fromparseHeaderElement(java.lang.String, org.apache.http.message.HeaderValueParser).- Returns:
- a header element representing the argument
-
parseParameters
public static final NameValuePair[] parseParameters(String value, HeaderValueParser parser) throws ParseExceptionParses parameters with the given parser.- Parameters:
value- the parameter list to parseparser- the parser to use, ornullfor default- Returns:
- array holding the parameters, never
null - Throws:
ParseException
-
parseParameters
Description copied from interface:HeaderValueParserParses 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
- Specified by:
parseParametersin interfaceHeaderValueParser- 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
-
parseNameValuePair
public static final NameValuePair parseNameValuePair(String value, HeaderValueParser parser) throws ParseExceptionParses a name-value-pair with the given parser.- Parameters:
value- the NVP to parseparser- the parser to use, ornullfor default- Returns:
- the parsed name-value pair
- Throws:
ParseException
-
parseNameValuePair
Description copied from interface:HeaderValueParserParses a name=value specification, where the = and value are optional.- Specified by:
parseNameValuePairin interfaceHeaderValueParser- 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
-
parseNameValuePair
public NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters) -
createNameValuePair
Creates a name-value pair. Called fromparseNameValuePair(java.lang.String, org.apache.http.message.HeaderValueParser).- Parameters:
name- the namevalue- the value, ornull- Returns:
- a name-value pair representing the arguments
-