Android
org.apache.http.message
public interface

org.apache.http.message.HeaderValueParser

org.apache.http.message.HeaderValueParser

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

Known Indirect Subclasses

Summary

Public Methods

          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.

Details

Public Methods

public HeaderElement[] parseElements(CharArrayBuffer buffer, ParserCursor cursor)

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

public HeaderElement parseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)

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

public NameValuePair parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor)

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

public NameValuePair[] parseParameters(CharArrayBuffer buffer, ParserCursor cursor)

Parses a list of name-value pairs. These lists are used to specify parameters to a header element. Parse errors are indicated as RuntimeException.

This method comforms to the generic grammar and formatting rules outlined in the Section 2.2 and Section 3.6 of RFC 2616.

2.2 Basic Rules

The following rules are used throughout this specification to describe basic parsing constructs. The US-ASCII coded character set is defined by ANSI X3.4-1986.

     OCTET          = 
     CHAR           = 
     UPALPHA        = 
     LOALPHA        = 
     ALPHA          = UPALPHA | LOALPHA
     DIGIT          = 
     CTL            = 
     CR             = 
     LF             = 
     SP             = 
     HT             = 
     <">            = 
 

Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters MUST be in a quoted string to be used within a parameter value (as defined in section 3.6).

 token          = 1*
 separators     = "(" | ")" | "<" | ">" | "@"
                | "," | ";" | ":" | "\" | <">
                | "/" | "[" | "]" | "?" | "="
                | "{" | "}" | SP | HT
 

A string of text is parsed as a single word if it is quoted using double-quote marks.

 quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
 qdtext         = >
 

The backslash character ("\") MAY be used as a single-character quoting mechanism only within quoted-string and comment constructs.

 quoted-pair    = "\" CHAR
 
3.6 Transfer Codings

Parameters are in the form of attribute/value pairs.

 parameter               = attribute "=" value
 attribute               = token
 value                   = token | quoted-string
 

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
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:48