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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

      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 parse 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–2013 The Apache Software Foundation. All rights reserved.