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

## Class HttpRequestRetryExec

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

- All Implemented Interfaces:
    ExecChainHandler

      @Contract(threading=STATELESS)
       @Internal
      public class HttpRequestRetryExec
      extends Object
      implements ExecChainHandler

  Request executor in the request execution chain that is responsible for making a decision whether a request that failed due to an I/O exception or received a specific response from the target server should be re-executed.

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

  If this handler is active, pay particular attention to the placement of other handlers within the handler chain relative to the retry handler. Use `ChainElement.RETRY` as name when referring to this handler.

  If a custom handler is placed before the retry handler, the handler will see the initial request and the final outcome after the last retry. Elapsed time will account for any delays imposed by the retry handler.

  A custom handler which is placed after the retry handler will be invoked for each individual retry. Elapsed time will measure each individual http request, without the delay imposed by the retry handler.

  Since:
    5.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HttpRequestRetryExec(HttpRequestRetryStrategy retryStrategy)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

    - #### HttpRequestRetryExec

          public HttpRequestRetryExec(HttpRequestRetryStrategy retryStrategy)

  - ### 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`

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