@Immutable public class HttpAsyncRequestExecutor extends Object implements NHttpClientEventHandler
NHttpClientEventHandler interface into logically related HTTP
message exchanges.
HttpAsyncRequestExecutor relies on HttpProcessor
to generate mandatory protocol headers for all outgoing messages and apply
common, cross-cutting message transformations to all incoming and outgoing
messages, whereas individual HttpAsyncRequestExecutionHandlers
are expected to implement application specific content generation and
processing. The caller is expected to pass an instance of
HttpAsyncRequestExecutionHandler to be used for the next series
of HTTP message exchanges through the connection context using
HTTP_HANDLER attribute. HTTP exchange sequence is considered
complete when the HttpAsyncResponseConsumer.isDone() method
returns true. The HttpAsyncRequester utility class can
be used to facilitate initiation of asynchronous HTTP request execution.
The following parameters can be used to customize the behavior of this
class:
HttpAsyncRequestExecutionHandler| Modifier and Type | Field and Description |
|---|---|
static String |
HTTP_HANDLER |
| Constructor and Description |
|---|
HttpAsyncRequestExecutor() |
| Modifier and Type | Method and Description |
|---|---|
void |
closed(NHttpClientConnection conn)
Triggered when the connection is closed.
|
void |
connected(NHttpClientConnection conn,
Object attachment)
Triggered when a new outgoing connection is created.
|
void |
endOfInput(NHttpClientConnection conn)
Triggered when the connection is closed by the opposite end point
(half-closed).
|
void |
exception(NHttpClientConnection conn,
Exception cause)
Triggered if an error occurs during the HTTP exchange.
|
void |
inputReady(NHttpClientConnection conn,
ContentDecoder decoder)
Triggered when the underlying channel is ready for reading a
new portion of the response entity through the corresponding
content decoder.
|
protected void |
log(Exception ex)
This method can be used to log I/O exception thrown while closing
Closeable
objects (such as HttpConnection}). |
void |
outputReady(NHttpClientConnection conn,
ContentEncoder encoder)
Triggered when the underlying channel is ready for writing a next portion
of the request entity through the corresponding content encoder.
|
void |
requestReady(NHttpClientConnection conn)
Triggered when the connection is ready to accept a new HTTP request.
|
void |
responseReceived(NHttpClientConnection conn)
Triggered when an HTTP response is received.
|
void |
timeout(NHttpClientConnection conn)
Triggered when no input is detected on this connection over the
maximum period of inactivity.
|
public static final String HTTP_HANDLER
public void connected(NHttpClientConnection conn, Object attachment) throws IOException, HttpException
NHttpClientEventHandlerconnected in interface NHttpClientEventHandlerconn - new outgoing HTTP connection.attachment - an object that was attached to the session requestIOExceptionHttpExceptionpublic void closed(NHttpClientConnection conn)
NHttpClientEventHandlerclosed in interface NHttpClientEventHandlerconn - closed HTTP connection.public void exception(NHttpClientConnection conn, Exception cause)
NHttpClientEventHandlerexception in interface NHttpClientEventHandlerconn - HTTP connection that caused an I/O errorcause - exceptionpublic void requestReady(NHttpClientConnection conn) throws IOException, HttpException
NHttpClientEventHandlerrequestReady in interface NHttpClientEventHandlerconn - HTTP connection that is ready to accept a new HTTP request.IOExceptionHttpExceptionNHttpClientConnectionpublic void outputReady(NHttpClientConnection conn, ContentEncoder encoder) throws IOException
NHttpClientEventHandlerIOControl interface (super interface of NHttpClientConnection).
Please note that the NHttpClientConnection and ContentEncoder
objects are not thread-safe and should only be used within the context of
this method call. The IOControl object can be shared and used on other
thread to resume output event notifications when more content is made available.outputReady in interface NHttpClientEventHandlerconn - HTTP connection that can accommodate a new portion
of the outgoing request content.encoder - The content encoder to use to write content.IOExceptionNHttpClientConnection,
ContentEncoder,
IOControlpublic void responseReceived(NHttpClientConnection conn) throws HttpException, IOException
NHttpClientEventHandlerNHttpClientEventHandler.inputReady(NHttpClientConnection, ContentDecoder) calls
to transfer the response content.responseReceived in interface NHttpClientEventHandlerconn - HTTP connection that contains an HTTP responseHttpExceptionIOExceptionNHttpClientConnectionpublic void inputReady(NHttpClientConnection conn, ContentDecoder decoder) throws IOException
NHttpClientEventHandlerIOControl interface (super interface of NHttpClientConnection).
Please note that the NHttpClientConnection and ContentDecoder
objects are not thread-safe and should only be used within the context of
this method call. The IOControl object can be shared and used on other
thread to resume input event notifications when the handler is capable of
processing more content.inputReady in interface NHttpClientEventHandlerconn - HTTP connection that can produce a new portion of the
incoming response content.decoder - The content decoder to use to read content.IOExceptionNHttpClientConnection,
ContentDecoder,
IOControlpublic void endOfInput(NHttpClientConnection conn) throws IOException
NHttpClientEventHandlerendOfInput in interface NHttpClientEventHandlerconn - half-closed HTTP connection.IOExceptionpublic void timeout(NHttpClientConnection conn) throws IOException
NHttpClientEventHandlertimeout in interface NHttpClientEventHandlerconn - HTTP connection that caused timeout condition.IOExceptionprotected void log(Exception ex)
Closeable
objects (such as HttpConnection}).ex - I/O exception thrown by Closeable.close()Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.