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 Details

  • 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 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.

      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
    • 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