## 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
`BasicAsyncRequestHandler(HttpRequestHandler handler)`

Method Summary
`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.

Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.