Class AbstractMessageParser<T extends HttpMessage>
java.lang.Object
org.apache.hc.core5.http.impl.nio.AbstractMessageParser<T>
- Type Parameters:
T- The type ofHttpMessage.
- All Implemented Interfaces:
NHttpMessageParser<T>
- Direct Known Subclasses:
DefaultHttpRequestParser, DefaultHttpResponseParser
public abstract class AbstractMessageParser<T extends HttpMessage>
extends Object
implements NHttpMessageParser<T>
Abstract
NHttpMessageParser that serves as a base for all message
parser implementations.- Since:
- 4.0
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate final List<CharArrayBuffer> private final Http1Configprivate CharArrayBufferprivate final LineParserprivate Tprivate AbstractMessageParser.State -
Constructor Summary
ConstructorsConstructorDescriptionAbstractMessageParser(Http1Config http1Config, LineParser lineParser) Constructs a new instance for a subclass.AbstractMessageParser(LineParser lineParser, Http1Config messageConstraints) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract TcreateMessage(CharArrayBuffer buffer) CreatesHttpMessageinstance based on the content of the input buffer containing the first line of the incoming HTTP message.(package private) LineParserparse(SessionInputBuffer sessionBuffer, boolean endOfStream) Attempts to parse a complete message head from the content of the internal buffer.private voidprivate Tvoidreset()Resets the parser.
-
Field Details
-
http1Config
-
lineParser
-
state
-
message
-
lineBuf
-
headerBufs
-
emptyLineCount
private int emptyLineCount
-
-
Constructor Details
-
AbstractMessageParser
Constructs a new instance for a subclass.- Parameters:
http1Config- HTTP/1.1 protocol parameters.lineParser- How to parse lines in an HTTP message.- Since:
- 5.3
-
AbstractMessageParser
Deprecated.Constructs a new instance for a subclass.- Parameters:
lineParser- How to parse lines in an HTTP message.messageConstraints- HTTP/1.1 protocol parameters.
-
-
Method Details
-
getLineParser
LineParser getLineParser() -
reset
public void reset()Description copied from interface:NHttpMessageParserResets the parser. The parser will be ready to start parsing another HTTP message.- Specified by:
resetin interfaceNHttpMessageParser<T extends HttpMessage>
-
createMessage
CreatesHttpMessageinstance based on the content of the input buffer containing the first line of the incoming HTTP message.- Parameters:
buffer- the line buffer.- Returns:
- HTTP message.
- Throws:
HttpException- in case of HTTP protocol violation
-
parseHeadLine
- Throws:
IOExceptionHttpException
-
parseHeader
- Throws:
IOException
-
parse
public T parse(SessionInputBuffer sessionBuffer, boolean endOfStream) throws IOException, HttpException Description copied from interface:NHttpMessageParserAttempts to parse a complete message head from the content of the internal buffer. If the message in the input buffer is incomplete this method will returnnull.- Specified by:
parsein interfaceNHttpMessageParser<T extends HttpMessage>- Parameters:
sessionBuffer- session input buffer.endOfStream- end of stream flag- Returns:
- HTTP message head, if available,
nullotherwise. - Throws:
IOException- in case of an I/O error.HttpException- in case the HTTP message is malformed or violates the HTTP protocol.
-
AbstractMessageParser(Http1Config, LineParser)