public class HttpObjectAggregator extends MessageToMessageDecoder<HttpObject>
ChannelHandler that aggregates an HttpMessage
and its following HttpContents into a single FullHttpRequest
or FullHttpResponse (depending on if it used to handle requests or responses)
with no following HttpContents. It is useful when you don't want to take
care of HTTP messages whose transfer encoding is 'chunked'. Insert this
handler after HttpObjectDecoder in the ChannelPipeline:
Be aware that you need to have theChannelPipelinep = ...; ... p.addLast("encoder", newHttpResponseEncoder()); p.addLast("decoder", newHttpRequestDecoder()); p.addLast("aggregator", newHttpObjectAggregator(1048576)); ... p.addLast("handler", new HttpRequestHandler());
HttpResponseEncoder or HttpRequestEncoder
before the HttpObjectAggregator in the ChannelPipeline.ChannelHandler.Sharable| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_MAX_COMPOSITEBUFFER_COMPONENTS |
| Constructor and Description |
|---|
HttpObjectAggregator(int maxContentLength)
Creates a new instance.
|
HttpObjectAggregator(int maxContentLength,
boolean closeOnExpectationFailed)
Creates a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
void |
channelInactive(ChannelHandlerContext ctx)
Calls
ChannelHandlerContext.fireChannelInactive() to forward
to the next ChannelInboundHandler in the ChannelPipeline. |
protected void |
decode(ChannelHandlerContext ctx,
HttpObject msg,
List<Object> out)
Decode from one message to an other.
|
int |
getMaxCumulationBufferComponents()
Returns the maximum number of components in the cumulation buffer.
|
void |
handlerAdded(ChannelHandlerContext ctx)
Do nothing by default, sub-classes may override this method.
|
void |
handlerRemoved(ChannelHandlerContext ctx)
Do nothing by default, sub-classes may override this method.
|
void |
setMaxCumulationBufferComponents(int maxCumulationBufferComponents)
Sets the maximum number of components in the cumulation buffer.
|
acceptInboundMessage, channelReadchannelActive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredisSharablepublic static final int DEFAULT_MAX_COMPOSITEBUFFER_COMPONENTS
public HttpObjectAggregator(int maxContentLength)
maxContentLength - the maximum length of the aggregated content in bytes.
If the length of the aggregated content exceeds this value,
a TooLongFrameException will be raised.public HttpObjectAggregator(int maxContentLength,
boolean closeOnExpectationFailed)
maxContentLength - the maximum length of the aggregated content in bytes.
If the length of the aggregated content exceeds this value,
a TooLongFrameException will be raised.closeOnExpectationFailed - If a 100-continue response is detected but the content length is too large
then true means close the connection. otherwise the connection will remain open and data will be
consumed and discarded until the next request is received.public final int getMaxCumulationBufferComponents()
DEFAULT_MAX_COMPOSITEBUFFER_COMPONENTS.public final void setMaxCumulationBufferComponents(int maxCumulationBufferComponents)
DEFAULT_MAX_COMPOSITEBUFFER_COMPONENTS
and its minimum allowed value is 2.protected void decode(ChannelHandlerContext ctx, HttpObject msg, List<Object> out) throws Exception
MessageToMessageDecoderdecode in class MessageToMessageDecoder<HttpObject>ctx - the ChannelHandlerContext which this MessageToMessageDecoder belongs tomsg - the message to decode to an other oneout - the List to which decoded messages should be addedException - is thrown if an error accourpublic void channelInactive(ChannelHandlerContext ctx) throws Exception
ChannelInboundHandlerAdapterChannelHandlerContext.fireChannelInactive() to forward
to the next ChannelInboundHandler in the ChannelPipeline.
Sub-classes may override this method to change behavior.channelInactive in interface ChannelInboundHandlerchannelInactive in class ChannelInboundHandlerAdapterExceptionpublic void handlerAdded(ChannelHandlerContext ctx) throws Exception
ChannelHandlerAdapterhandlerAdded in interface ChannelHandlerhandlerAdded in class ChannelHandlerAdapterExceptionpublic void handlerRemoved(ChannelHandlerContext ctx) throws Exception
ChannelHandlerAdapterhandlerRemoved in interface ChannelHandlerhandlerRemoved in class ChannelHandlerAdapterExceptionCopyright © 2008–2016 The Netty Project. All rights reserved.