Package org.apache.http.nio.protocol
Class BasicAsyncRequestHandler
java.lang.Object
org.apache.http.nio.protocol.BasicAsyncRequestHandler
- All Implemented Interfaces:
HttpAsyncRequestHandler<HttpRequest>
@Contract(threading=IMMUTABLE_CONDITIONAL)
public class BasicAsyncRequestHandler
extends Object
implements HttpAsyncRequestHandler<HttpRequest>
Basic implementation of
HttpAsyncRequestHandler
that delegates
the process of request handling to a HttpRequestHandler
. Please note
that this handler buffers request content in memory and should be used for
relatively small request messages.- Since:
- 4.2
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
handle
(HttpRequest request, HttpAsyncExchange httpexchange, HttpContext context) Triggered to complete request processing and to initiate the process of generating a response.processRequest
(HttpRequest request, HttpContext context) Triggered when an incoming request is received.
-
Constructor Details
-
BasicAsyncRequestHandler
-
-
Method Details
-
processRequest
public HttpAsyncRequestConsumer<HttpRequest> processRequest(HttpRequest request, HttpContext context) Description copied from interface:HttpAsyncRequestHandler
Triggered when an incoming request is received. This method should return aHttpAsyncRequestConsumer
that will be used to process the request and consume message content if enclosed. The consumer can optionally parse or transform the message content into a structured object which is then passed onto theHttpAsyncRequestHandler.handle(Object, HttpAsyncExchange, HttpContext)
method for further processing.- Specified by:
processRequest
in interfaceHttpAsyncRequestHandler<HttpRequest>
- Parameters:
request
- the entity enclosing request.context
- the execution context.- Returns:
- request consumer.
-
handle
public void handle(HttpRequest request, HttpAsyncExchange httpexchange, HttpContext context) throws HttpException, IOException Description copied from interface:HttpAsyncRequestHandler
Triggered to complete request processing and to initiate the process of generating a response. This method does not have to submit a response immediately. It can defer transmission of an HTTP response back to the client without blocking the I/O thread by delegating the process of request handling to another service or a worker thread. HTTP response can be submitted as a later a later point of time usingHttpAsyncExchange
once response content becomes available.- Specified by:
handle
in interfaceHttpAsyncRequestHandler<HttpRequest>
- Parameters:
request
- request data returned by the request consumer.httpexchange
- HTTP exchange.context
- HTTP execution context.- Throws:
HttpException
- in case of HTTP protocol violation or a processing problem.IOException
- in case of an I/O error.
-