Class AbstractMessageParser<T extends HttpMessage>

java.lang.Object
org.apache.http.impl.io.AbstractMessageParser<T>
All Implemented Interfaces:
HttpMessageParser<T>
Direct Known Subclasses:
DefaultHttpRequestParser, DefaultHttpResponseParser, DefaultHttpResponseParser, DefaultResponseParser, HttpRequestParser, HttpResponseParser

public abstract class AbstractMessageParser<T extends HttpMessage> extends Object implements HttpMessageParser<T>
Abstract base class for HTTP message parsers that obtain input from an instance of SessionInputBuffer.
Since:
4.0
  • Constructor Details

  • Method Details

    • parseHeaders

      public static Header[] parseHeaders(SessionInputBuffer inbuffer, int maxHeaderCount, int maxLineLen, LineParser parser) throws HttpException, IOException
      Parses HTTP headers from the data receiver stream according to the generic format as given in Section 3.1 of RFC 822, RFC-2616 Section 4 and 19.3.
      Parameters:
      inbuffer - Session input buffer
      maxHeaderCount - maximum number of headers allowed. If the number of headers received from the data stream exceeds maxCount value, an IOException will be thrown. Setting this parameter to a negative value or zero will disable the check.
      maxLineLen - maximum number of characters for a header line, including the continuation lines. Setting this parameter to a negative value or zero will disable the check.
      parser - line parser to use. Can be null, in which case the default implementation of this interface will be used.
      Returns:
      array of HTTP headers
      Throws:
      IOException - in case of an I/O error
      HttpException - in case of HTTP protocol violation
    • parseHeaders

      public static Header[] parseHeaders(SessionInputBuffer inbuffer, int maxHeaderCount, int maxLineLen, LineParser parser, List<CharArrayBuffer> headerLines) throws HttpException, IOException
      Parses HTTP headers from the data receiver stream according to the generic format as given in Section 3.1 of RFC 822, RFC-2616 Section 4 and 19.3.
      Parameters:
      inbuffer - Session input buffer
      maxHeaderCount - maximum number of headers allowed. If the number of headers received from the data stream exceeds maxCount value, an IOException will be thrown. Setting this parameter to a negative value or zero will disable the check.
      maxLineLen - maximum number of characters for a header line, including the continuation lines. Setting this parameter to a negative value or zero will disable the check.
      parser - line parser to use.
      headerLines - List of header lines. This list will be used to store intermediate results. This makes it possible to resume parsing of headers in case of a InterruptedIOException.
      Returns:
      array of HTTP headers
      Throws:
      IOException - in case of an I/O error
      HttpException - in case of HTTP protocol violation
      Since:
      4.1
    • parse

      public T parse() throws IOException, HttpException
      Description copied from interface: HttpMessageParser
      Generates an instance of HttpMessage from the underlying data source.
      Specified by:
      parse in interface HttpMessageParser<T extends HttpMessage>
      Returns:
      HTTP message
      Throws:
      IOException - in case of an I/O error
      HttpException - in case of HTTP protocol violation