org.apache.http.message
Interface HeaderValueParser

All Known Implementing Classes:
BasicHeaderValueParser

public interface HeaderValueParser

Interface for parsing header values into elements. Instances of this interface are expected to be stateless and thread-safe.

Since:
4.0

Method Summary
 HeaderElement[] parseElements(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a header value into elements.
 HeaderElement parseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)
          Parses a single header element.
 NameValuePair parseNameValuePair(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 Detail

parseElements

HeaderElement[] parseElements(CharArrayBuffer buffer,
                              ParserCursor cursor)
                              throws ParseException
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).

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
Throws:
ParseException - in case of a parsing error

parseHeaderElement

HeaderElement parseHeaderElement(CharArrayBuffer buffer,
                                 ParserCursor cursor)
                                 throws ParseException
Parses a single header element. A header element consist of a semicolon-separate list of name=value definitions.

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
Throws:
ParseException - in case of a parse error

parseParameters

NameValuePair[] parseParameters(CharArrayBuffer buffer,
                                ParserCursor cursor)
                                throws ParseException
Parses a list of name-value pairs. These lists are used to specify parameters to a header element. Parse errors are indicated as ParseException.

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
Throws:
ParseException - in case of a parse error

parseNameValuePair

NameValuePair parseNameValuePair(CharArrayBuffer buffer,
                                 ParserCursor cursor)
                                 throws ParseException
Parses a name=value specification, where the = and value are optional.

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
Throws:
ParseException


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