Package org.apache.http.nio.protocol
Class BasicAsyncRequestConsumer
- java.lang.Object
-
- org.apache.http.nio.protocol.AbstractAsyncRequestConsumer<HttpRequest>
-
- org.apache.http.nio.protocol.BasicAsyncRequestConsumer
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,HttpAsyncRequestConsumer<HttpRequest>
public class BasicAsyncRequestConsumer extends AbstractAsyncRequestConsumer<HttpRequest>
Basic implementation ofHttpAsyncRequestConsumer
. Please note that this consumer buffers request content in memory and should be used for relatively small request messages.- Since:
- 4.2
-
-
Field Summary
Fields Modifier and Type Field Description private SimpleInputBuffer
buf
private static int
MAX_INITIAL_BUFFER_SIZE
private HttpRequest
request
-
Constructor Summary
Constructors Constructor Description BasicAsyncRequestConsumer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected HttpRequest
buildResult(HttpContext context)
Invoked to generate a result object from the received HTTP request message.protected void
onContentReceived(ContentDecoder decoder, IOControl ioControl)
Invoked to process a chunk of content from theContentDecoder
.protected void
onEntityEnclosed(HttpEntity entity, ContentType contentType)
Invoked if the request message encloses a content entity.protected void
onRequestReceived(HttpRequest request)
Invoked when a HTTP request message is received.protected void
releaseResources()
Invoked to release all system resources currently allocated.-
Methods inherited from class org.apache.http.nio.protocol.AbstractAsyncRequestConsumer
close, consumeContent, failed, getException, getResult, isDone, onClose, requestCompleted, requestReceived
-
-
-
-
Field Detail
-
MAX_INITIAL_BUFFER_SIZE
private static final int MAX_INITIAL_BUFFER_SIZE
- See Also:
- Constant Field Values
-
request
private volatile HttpRequest request
-
buf
private volatile SimpleInputBuffer buf
-
-
Method Detail
-
onRequestReceived
protected void onRequestReceived(HttpRequest request) throws java.io.IOException
Description copied from class:AbstractAsyncRequestConsumer
Invoked when a HTTP request message is received. Please note that theAbstractAsyncRequestConsumer.onContentReceived(ContentDecoder, IOControl)
method will be invoked only for if the request message implementsHttpEntityEnclosingRequest
interface and has a content entity enclosed.- Specified by:
onRequestReceived
in classAbstractAsyncRequestConsumer<HttpRequest>
- Parameters:
request
- HTTP request message.- Throws:
java.io.IOException
- in case of an I/O error
-
onEntityEnclosed
protected void onEntityEnclosed(HttpEntity entity, ContentType contentType) throws java.io.IOException
Description copied from class:AbstractAsyncRequestConsumer
Invoked if the request message encloses a content entity.- Specified by:
onEntityEnclosed
in classAbstractAsyncRequestConsumer<HttpRequest>
- Parameters:
entity
- HTTP entitycontentType
- expected content type.- Throws:
java.io.IOException
- in case of an I/O error
-
onContentReceived
protected void onContentReceived(ContentDecoder decoder, IOControl ioControl) throws java.io.IOException
Description copied from class:AbstractAsyncRequestConsumer
Invoked to process a chunk of content from theContentDecoder
. TheIOControl
interface can be used to suspend input events if the consumer is temporarily unable to consume more content.The consumer can use the
ContentDecoder.isCompleted()
method to find out whether or not the message content has been fully consumed.- Specified by:
onContentReceived
in classAbstractAsyncRequestConsumer<HttpRequest>
- Parameters:
decoder
- content decoder.ioControl
- I/O control of the underlying connection.- Throws:
java.io.IOException
- in case of an I/O error
-
releaseResources
protected void releaseResources()
Description copied from class:AbstractAsyncRequestConsumer
Invoked to release all system resources currently allocated.- Specified by:
releaseResources
in classAbstractAsyncRequestConsumer<HttpRequest>
-
buildResult
protected HttpRequest buildResult(HttpContext context)
Description copied from class:AbstractAsyncRequestConsumer
Invoked to generate a result object from the received HTTP request message.- Specified by:
buildResult
in classAbstractAsyncRequestConsumer<HttpRequest>
- Parameters:
context
- HTTP context.- Returns:
- result of the request processing.
-
-