org.apache.http.message
Class BasicHeaderValueParser

java.lang.Object
  extended by 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
static BasicHeaderValueParser DEFAULT
          Deprecated. (4.3) use INSTANCE
static BasicHeaderValueParser INSTANCE
           
 
Constructor Summary
BasicHeaderValueParser()
           
 
Method Summary
protected  HeaderElement createHeaderElement(String name, String value, NameValuePair[] params)
          Creates a header element.
protected  NameValuePair createNameValuePair(String name, String value)
          Creates a name-value pair.
 HeaderElement[] parseElements(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a header value into elements.
static HeaderElement[] parseElements(String value, HeaderValueParser parser)
          Parses elements with the given parser.
 HeaderElement parseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a single header element.
static HeaderElement parseHeaderElement(String value, HeaderValueParser parser)
          Parses an element with the given parser.
 NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a name=value specification, where the = and value are optional.
 NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters)
          Deprecated. (4.4) use TokenParser
static NameValuePair parseNameValuePair(String value, HeaderValueParser parser)
          Parses a name-value-pair with the given parser.
 NameValuePair[] parseParameters(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a list of name-value pairs.
static NameValuePair[] parseParameters(String value, HeaderValueParser parser)
          Parses parameters with the given parser.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT

@Deprecated
public static final BasicHeaderValueParser DEFAULT
Deprecated. (4.3) use INSTANCE
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.


INSTANCE

public static final BasicHeaderValueParser INSTANCE
Constructor Detail

BasicHeaderValueParser

public BasicHeaderValueParser()
Method Detail

parseElements

public static HeaderElement[] parseElements(String value,
                                            HeaderValueParser parser)
                                     throws ParseException
Parses elements with the given parser.

Parameters:
value - the header value to parse
parser - the parser to use, or null for default
Returns:
array holding the header elements, never null
Throws:
ParseException - in case of a parsing error

parseElements

public HeaderElement[] parseElements(CharArrayBuffer buffer,
                                     ParserCursor cursor)
Description copied from interface: HeaderValueParser
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.

Note that this parser does not apply to list-typed HTTP header fields in general; it is only suitable for fields that use the syntax described above. Counter-examples are "Link" (RFC 8288), "If-None-Match" (RFC 7232) or "Dav" (RFC 4918).

Specified by:
parseElements in interface HeaderValueParser
Parameters:
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
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 parse
parser - the parser to use, or null for default
Returns:
the parsed header element
Throws:
ParseException

parseHeaderElement

public HeaderElement parseHeaderElement(CharArrayBuffer buffer,
                                        ParserCursor cursor)
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 interface HeaderValueParser
Parameters:
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
Returns:
the parsed element

createHeaderElement

protected HeaderElement createHeaderElement(String name,
                                            String value,
                                            NameValuePair[] params)
Creates a header element. Called from parseHeaderElement(java.lang.String, org.apache.http.message.HeaderValueParser).

Returns:
a header element representing the argument

parseParameters

public static NameValuePair[] parseParameters(String value,
                                              HeaderValueParser parser)
                                       throws ParseException
Parses parameters with the given parser.

Parameters:
value - the parameter list to parse
parser - the parser to use, or null for default
Returns:
array holding the parameters, never null
Throws:
ParseException

parseParameters

public NameValuePair[] parseParameters(CharArrayBuffer buffer,
                                       ParserCursor cursor)
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 as ParseException.

Specified by:
parseParameters in interface HeaderValueParser
Parameters:
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
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 parse
parser - the parser to use, or null for default
Returns:
the parsed name-value pair
Throws:
ParseException

parseNameValuePair

public NameValuePair parseNameValuePair(CharArrayBuffer buffer,
                                        ParserCursor cursor)
Description copied from interface: HeaderValueParser
Parses a name=value specification, where the = and value are optional.

Specified by:
parseNameValuePair in interface HeaderValueParser
Parameters:
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
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) use TokenParser


createNameValuePair

protected NameValuePair createNameValuePair(String name,
                                            String value)
Creates a name-value pair. Called from parseNameValuePair(java.lang.String, org.apache.http.message.HeaderValueParser).

Parameters:
name - the name
value - the value, or null
Returns:
a name-value pair representing the arguments


Copyright © 2005–2019 The Apache Software Foundation. All rights reserved.