org.apache.http.nio.protocol

## Class BasicAsyncRequestHandler

- java.lang.Object
- - org.apache.http.nio.protocol.BasicAsyncRequestHandler

All Implemented Interfaces:
  HttpAsyncRequestHandler<HttpRequest>

    @Immutable
    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
Constructor and Description
`BasicAsyncRequestHandler(HttpRequestHandler handler)`

### Method Summary

Methods
`void` `handle(HttpRequest request, HttpAsyncExchange httpexchange, HttpContext context)` Triggered to complete request processing and to initiate the process of generating a response.
`HttpAsyncRequestConsumer<HttpRequest>` `processRequest(HttpRequest request, HttpContext context)` Triggered when an incoming request is received.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BasicAsyncRequestHandler

    public BasicAsyncRequestHandler(HttpRequestHandler handler)

### Method Detail

#### 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 a `HttpAsyncRequestConsumer` 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 the `HttpAsyncRequestHandler.handle(Object, HttpAsyncExchange, HttpContext)` method for further processing.

Specified by:
  `processRequest` in interface `HttpAsyncRequestHandler<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 using `HttpAsyncExchange` once response content becomes available.

Specified by:
  `handle` in interface `HttpAsyncRequestHandler<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.