org.apache.hc.client5.http.impl.classic

## Class BackoffStrategyExec

- java.lang.Object
- - org.apache.hc.client5.http.impl.classic.BackoffStrategyExec

All Implemented Interfaces:
  ExecChainHandler

    @Contract(threading=STATELESS)
    public final class BackoffStrategyExec
    extends Object
    implements ExecChainHandler

Request execution handler in the classic request execution chain that is responsible for execution of an `ConnectionBackoffStrategy`.

Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.

Since:
  4.3

### Constructor Summary

Constructors
Constructor and Description
`BackoffStrategyExec(ConnectionBackoffStrategy connectionBackoffStrategy, BackoffManager backoffManager)` Constructs a `BackoffStrategyExec` with the specified `ConnectionBackoffStrategy` and `BackoffManager`.

### Method Summary

All Methods Instance Methods Concrete Methods
`org.apache.hc.core5.http.ClassicHttpResponse` `execute(org.apache.hc.core5.http.ClassicHttpRequest request, ExecChain.Scope scope, ExecChain chain)` Executes the actual HTTP request.

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

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

### Constructor Detail

#### BackoffStrategyExec

    public BackoffStrategyExec(ConnectionBackoffStrategy connectionBackoffStrategy,
                               BackoffManager backoffManager)

Constructs a `BackoffStrategyExec` with the specified `ConnectionBackoffStrategy` and `BackoffManager`.

Parameters:
  `connectionBackoffStrategy` - the strategy to determine whether to backoff based on the response or exception
  `backoffManager` - the manager responsible for applying backoff and probing actions to the HTTP routes

### Method Detail

#### execute

    public org.apache.hc.core5.http.ClassicHttpResponse execute(org.apache.hc.core5.http.ClassicHttpRequest request,
                                                                ExecChain.Scope scope,
                                                                ExecChain chain)
                                                         throws IOException,
                                                                org.apache.hc.core5.http.HttpException

Description copied from interface: `ExecChainHandler`
Executes the actual HTTP request. The handler can choose to return a response message or delegate request execution to the next element in the execution chain.

Specified by:
  `execute` in interface `ExecChainHandler`
Parameters:
  `request` - the actual request.
  `scope` - the execution scope .
  `chain` - the next element in the request execution chain.
Throws:
  `IOException`
  `org.apache.hc.core5.http.HttpException`