• BlackBerry Dynamics
  • Runtime library for Android applications
  • 12.0.1.79
HeaderValueParser Interface Reference

Interface for parsing header values into elements. More...

Inheritance diagram for HeaderValueParser:
BasicHeaderValueParser

Description

Instances of this interface are expected to be stateless and thread-safe.

Version
Revision
589325
Date
2007-10-28 03:37:56 -0700 (Sun, 28 Oct 2007)
Since
4.0

Notice

The following notice applies to the original API on which this API is based, and to its documentation. The documentation of this API has been revised from the original.

/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Public Member Functions

HeaderElement[] parseElements (CharArrayBuffer buffer, ParserCursor cursor) throws ParseException
 Parses a header value into elements. More...
 
HeaderElement parseHeaderElement (CharArrayBuffer buffer, ParserCursor cursor) throws ParseException
 Parses a single header element. More...
 
NameValuePair[] parseParameters (CharArrayBuffer buffer, ParserCursor cursor) throws ParseException
 Parses a list of name-value pairs. More...
 
NameValuePair parseNameValuePair (CharArrayBuffer buffer, ParserCursor cursor) throws ParseException
 Parses a name=value specification, where the = and value are optional. More...
 

Member Function Documentation

◆ parseElements()

HeaderElement [] parseElements ( CharArrayBuffer  buffer,
ParserCursor  cursor 
) throws ParseException

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
bufferbuffer holding the header value to parse
cursorthe 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
Exceptions
ParseExceptionin case of a parse error

Implemented in BasicHeaderValueParser.

◆ parseHeaderElement()

HeaderElement parseHeaderElement ( CharArrayBuffer  buffer,
ParserCursor  cursor 
) throws ParseException

A header element consist of a semicolon-separate list of name=value definitions.

Parameters
bufferbuffer holding the element to parse
cursorthe parser cursor containing the current position and the bounds within the buffer for the parsing operation
Returns
the parsed element
Exceptions
ParseExceptionin case of a parse error

Implemented in BasicHeaderValueParser.

◆ parseParameters()

NameValuePair [] parseParameters ( CharArrayBuffer  buffer,
ParserCursor  cursor 
) throws ParseException

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          = <any 8-bit sequence of data>
    CHAR           = <any US-ASCII character (octets 0 - 127)>
    UPALPHA        = <any US-ASCII uppercase letter "A".."Z">
    LOALPHA        = <any US-ASCII lowercase letter "a".."z">
    ALPHA          = UPALPHA | LOALPHA
    DIGIT          = <any US-ASCII digit "0".."9">
    CTL            = <any US-ASCII control character
                     (octets 0 - 31) and DEL (127)>
    CR             = <US-ASCII CR, carriage return (13)>
    LF             = <US-ASCII LF, linefeed (10)>
    SP             = <US-ASCII SP, space (32)>
    HT             = <US-ASCII HT, horizontal-tab (9)>
    <">            = <US-ASCII double-quote mark (34)>

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*<any CHAR except CTLs or separators>
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         = <any TEXT except <">>

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
bufferbuffer holding the name-value list to parse
cursorthe 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
Exceptions
ParseExceptionin case of a parse error

Implemented in BasicHeaderValueParser.

◆ parseNameValuePair()

NameValuePair parseNameValuePair ( CharArrayBuffer  buffer,
ParserCursor  cursor 
) throws ParseException
Parameters
bufferthe buffer holding the name-value pair to parse
cursorthe 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

Implemented in BasicHeaderValueParser.