Package org.apache.http.message
Class BasicHeaderValueParser
java.lang.Object
org.apache.http.message.BasicHeaderValueParser
- All Implemented Interfaces:
HeaderValueParser
@Contract(threading=IMMUTABLE)
public class BasicHeaderValueParser
extends Object
implements HeaderValueParser
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.
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BasicHeaderValueParser
Deprecated.static final BasicHeaderValueParser
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic HeaderElement[]
parseElements
(String value, HeaderValueParser parser) Parses elements with the given parser.parseElements
(CharArrayBuffer buffer, ParserCursor cursor) Parses a header value into elements.static HeaderElement
parseHeaderElement
(String value, HeaderValueParser parser) Parses an element with the given parser.parseHeaderElement
(CharArrayBuffer buffer, ParserCursor cursor) Parses a single header element.static NameValuePair
parseNameValuePair
(String value, HeaderValueParser parser) Parses a name-value-pair with the given parser.parseNameValuePair
(CharArrayBuffer buffer, ParserCursor cursor) Parses a name=value specification, where the = and value are optional.parseNameValuePair
(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters) Deprecated.(4.4) useTokenParser
static NameValuePair[]
parseParameters
(String value, HeaderValueParser parser) Parses parameters with the given parser.parseParameters
(CharArrayBuffer buffer, ParserCursor cursor) Parses a list of name-value pairs.
-
Field Details
-
DEFAULT
Deprecated.(4.3) useINSTANCE
A default instance of this class, for use as default or fallback. Note thatBasicHeaderValueParser
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. -
INSTANCE
-
-
Constructor Details
-
BasicHeaderValueParser
public BasicHeaderValueParser()
-
-
Method Details
-
parseElements
public static HeaderElement[] parseElements(String value, HeaderValueParser parser) throws ParseException Parses elements with the given parser.- Parameters:
value
- the header value to parseparser
- the parser to use, ornull
for default- Returns:
- array holding the header elements, never
null
- Throws:
ParseException
- in case of a parsing error
-
parseElements
Description copied from interface:HeaderValueParser
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 = "\" 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.- Specified by:
parseElements
in 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 HeaderElement parseHeaderElement(String value, HeaderValueParser parser) throws ParseException Parses an element with the given parser.- Parameters:
value
- the header element to parseparser
- the parser to use, ornull
for default- Returns:
- the parsed header element
- Throws:
ParseException
-
parseHeaderElement
Description copied from interface:HeaderValueParser
Parses a single header element. A header element consist of a semicolon-separate list of name=value definitions.- Specified by:
parseHeaderElement
in 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
-
parseParameters
public static NameValuePair[] parseParameters(String value, HeaderValueParser parser) throws ParseException Parses parameters with the given parser.- Parameters:
value
- the parameter list to parseparser
- the parser to use, ornull
for default- Returns:
- array holding the parameters, never
null
- Throws:
ParseException
-
parseParameters
Description copied from interface:HeaderValueParser
Parses a list of name-value pairs. These lists are used to specify parameters to a header element. Parse errors are indicated asParseException
.- Specified by:
parseParameters
in 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 NameValuePair parseNameValuePair(String value, HeaderValueParser parser) throws ParseException Parses a name-value-pair with the given parser.- Parameters:
value
- the NVP to parseparser
- the parser to use, ornull
for default- Returns:
- the parsed name-value pair
- Throws:
ParseException
-
parseNameValuePair
Description copied from interface:HeaderValueParser
Parses a name=value specification, where the = and value are optional.- Specified by:
parseNameValuePair
in 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
null
if no value is specified
-
parseNameValuePair
@Deprecated public NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters) Deprecated.(4.4) useTokenParser
-
INSTANCE