org.apache.hc.client5.http.async

## Interface AsyncExecChainHandler

- All Known Implementing Classes:
    AsyncConnectExec, AsyncHttpRequestRetryExec, AsyncProtocolExec, AsyncRedirectExec, H2AsyncMainClientExec

      @Contract(threading=STATELESS)
      public interface AsyncExecChainHandler

  Abstract request execution handler in an asynchronous client side request execution chain. Handlers can either be a decorator around another element that implements a cross cutting aspect or a self-contained executor capable of producing a response for the given request.

  For information regarding the handler chain behaviour in case of a request re-execution, please refer to the `AsyncHttpRequestRetryExec` javadoc.

  Well known request execution handlers could be referred to by name using one of the `ChainElement` enum values.

  Since:
    5.0
  See Also:
    `ChainElement`, `HttpAsyncClientBuilder.addExecInterceptorFirst(String, AsyncExecChainHandler)`, `HttpAsyncClientBuilder.addExecInterceptorBefore(String, String, AsyncExecChainHandler)`, `HttpAsyncClientBuilder.addExecInterceptorAfter(String, String, AsyncExecChainHandler)`, `HttpAsyncClientBuilder.addExecInterceptorLast(String, AsyncExecChainHandler)`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `execute(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer, AsyncExecChain.Scope scope, AsyncExecChain chain, AsyncExecCallback asyncExecCallback)` Executes the actual HTTP request.

- - ### Method Detail

    - #### execute

          void execute(org.apache.hc.core5.http.HttpRequest request,
                       org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer,
                       AsyncExecChain.Scope scope,
                       AsyncExecChain chain,
                       AsyncExecCallback asyncExecCallback)
                throws org.apache.hc.core5.http.HttpException,
                       IOException

      Executes the actual HTTP request. The handler can choose to return a response message immediately inside the call or asynchronously at some later point or delegate request execution to the next element in the execution chain.
      Parameters:
        `request` - the actual request.
        `entityProducer` - the request entity producer or `null` if the request does not enclose an entity.
        `scope` - the execution scope .
        `chain` - the next element in the request execution chain.
        `asyncExecCallback` - the execution callback.
      Throws:
        `org.apache.hc.core5.http.HttpException` - If a protocol error occurs.
        `IOException` - If an I/O error occurs.

Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.