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
    Modifier and Type | Method and Description
    --- | ---
    `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.