Android

org.apache.http.message.BasicLineParser

java.lang.Object
org.apache.http.message.BasicLineParser LineParser

Basic parser for lines in the head section of an HTTP message. There are individual methods for parsing a request line, a status line, or a header line. The lines to parse are passed in memory, the parser does not depend on any specific IO mechanism. Instances of this class are stateless and thread-safe. Derived classes MUST maintain these properties.

Note: This class was created by refactoring parsing code located in various other classes. The author tags from those other classes have been replicated here, although the association with the parsing code taken from there has not been traced.

Summary

Constants

      Value  
BasicLineParser  DEFAULT  A default instance of this class, for use as default or fallback.     

Fields

protected    final  ProtocolVersion  protocol  A version of the protocol to parse. 

Public Constructors

            BasicLineParser(ProtocolVersion proto)
Creates a new line parser for the given HTTP-like protocol.
            BasicLineParser()
Creates a new line parser for HTTP.

Public Methods

          boolean  hasProtocolVersion(CharArrayBuffer buffer, ParserCursor cursor)
Checks whether there likely is a protocol version in a line.
          Header  parseHeader(CharArrayBuffer buffer)
Creates a header from a line.
    final  static    Header  parseHeader(String value, LineParser parser)
          ProtocolVersion  parseProtocolVersion(CharArrayBuffer buffer, ParserCursor cursor)
Parses the textual representation of a protocol version.
    final  static    ProtocolVersion  parseProtocolVersion(String value, LineParser parser)
    final  static    RequestLine  parseRequestLine(String value, LineParser parser)
          RequestLine  parseRequestLine(CharArrayBuffer buffer, ParserCursor cursor)
Parses a request line.
    final  static    StatusLine  parseStatusLine(String value, LineParser parser)
          StatusLine  parseStatusLine(CharArrayBuffer buffer, ParserCursor cursor)
Parses a status line.

Protected Methods

          ProtocolVersion  createProtocolVersion(int major, int minor)
Creates a protocol version.
          RequestLine  createRequestLine(String method, String uri, ProtocolVersion ver)
Instantiates a new request line.
          StatusLine  createStatusLine(ProtocolVersion ver, int status, String reason)
Instantiates a new status line.
          void  skipWhitespace(CharArrayBuffer buffer, ParserCursor cursor)
Helper to skip whitespace.
Methods inherited from class java.lang.Object
Methods inherited from interface org.apache.http.message.LineParser

Details

Constants

public static final BasicLineParser DEFAULT

A default instance of this class, for use as default or fallback. Note that BasicLineParser is not a singleton, there can be many instances of the class itself and of derived classes. The instance here provides non-customized, default behavior.

Fields

protected final ProtocolVersion protocol

A version of the protocol to parse. The version is typically not relevant, but the protocol name.

Public Constructors

public BasicLineParser(ProtocolVersion proto)

Creates a new line parser for the given HTTP-like protocol.

Parameters

proto a version of the protocol to parse, or null for HTTP. The actual version is not relevant, only the protocol name.

public BasicLineParser()

Creates a new line parser for HTTP.

Public Methods

public boolean hasProtocolVersion(CharArrayBuffer buffer, ParserCursor cursor)

Checks whether there likely is a protocol version in a line. This method implements a heuristic to check for a likely protocol version specification. It does not guarantee that parseProtocolVersion(CharArrayBuffer, ParserCursor) would not detect a parse error. This can be used to detect garbage lines before a request or status line.

public Header parseHeader(CharArrayBuffer buffer)

Creates a header from a line. The full header line is expected here. Header continuation lines must be joined by the caller before invoking this method.

public static final Header parseHeader(String value, LineParser parser)

public ProtocolVersion parseProtocolVersion(CharArrayBuffer buffer, ParserCursor cursor)

Parses the textual representation of a protocol version. This is needed for parsing request lines (last element) as well as status lines (first element).

public static final ProtocolVersion parseProtocolVersion(String value, LineParser parser)

public static final RequestLine parseRequestLine(String value, LineParser parser)

public RequestLine parseRequestLine(CharArrayBuffer buffer, ParserCursor cursor)

Parses a request line.

Parameters

buffer a buffer holding the line to parse

Returns

  • the parsed request line

Throws

ParseException in case of a parse error

public static final StatusLine parseStatusLine(String value, LineParser parser)

public StatusLine parseStatusLine(CharArrayBuffer buffer, ParserCursor cursor)

Parses a status line.

Protected Methods

protected ProtocolVersion createProtocolVersion(int major, int minor)

Creates a protocol version. Called from parseProtocolVersion(String, LineParser).

Parameters

major the major version number, for example 1 in HTTP/1.0
minor the minor version number, for example 0 in HTTP/1.0

Returns

  • the protocol version

protected RequestLine createRequestLine(String method, String uri, ProtocolVersion ver)

Instantiates a new request line. Called from parseRequestLine(String, LineParser).

Parameters

method the request method
uri the requested URI
ver the protocol version

Returns

  • a new status line with the given data

protected StatusLine createStatusLine(ProtocolVersion ver, int status, String reason)

Instantiates a new status line. Called from parseStatusLine(String, LineParser).

Parameters

ver the protocol version
status the status code
reason the reason phrase

Returns

  • a new status line with the given data

protected void skipWhitespace(CharArrayBuffer buffer, ParserCursor cursor)

Helper to skip whitespace.
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:56