Class DefaultHttpRequestRetryStrategy

java.lang.Object
org.apache.hc.client5.http.impl.DefaultHttpRequestRetryStrategy
All Implemented Interfaces:
HttpRequestRetryStrategy

@Contract(threading=STATELESS) public class DefaultHttpRequestRetryStrategy extends Object implements HttpRequestRetryStrategy
Default implementation of the HttpRequestRetryStrategy interface.
Since:
5.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    Create the HTTP request retry strategy with a max retry count of 1, default retry interval of 1 second, and using the following list of non-retriable I/O exception classes:
    InterruptedIOException UnknownHostException ConnectException ConnectionClosedException SSLException and retriable HTTP status codes:
    SC_TOO_MANY_REQUESTS (429) SC_SERVICE_UNAVAILABLE (503)
     
    DefaultHttpRequestRetryStrategy(int maxRetries, org.apache.hc.core5.util.TimeValue defaultRetryInterval)
    Create the HTTP request retry strategy using the following list of non-retriable I/O exception classes:
    InterruptedIOException UnknownHostException ConnectException ConnectionClosedException NoRouteToHostException SSLException and retriable HTTP status codes:
    SC_TOO_MANY_REQUESTS (429) SC_SERVICE_UNAVAILABLE (503)
    protected
    DefaultHttpRequestRetryStrategy(int maxRetries, org.apache.hc.core5.util.TimeValue defaultRetryInterval, Collection<Class<? extends IOException>> clazzes, Collection<Integer> codes)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.hc.core5.util.TimeValue
    getRetryInterval(org.apache.hc.core5.http.HttpResponse response, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
    Determines the retry interval between subsequent retries.
    protected boolean
    handleAsIdempotent(org.apache.hc.core5.http.HttpRequest request)
     
    boolean
    retryRequest(org.apache.hc.core5.http.HttpRequest request, IOException exception, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
    Determines if a method should be retried after an I/O exception occurred during execution.
    boolean
    retryRequest(org.apache.hc.core5.http.HttpResponse response, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
    Determines if a method should be retried given the response from the target server.

    Methods inherited from class Object

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

    Methods inherited from interface HttpRequestRetryStrategy

    getRetryInterval
  • Field Details

  • Constructor Details

    • DefaultHttpRequestRetryStrategy

      protected DefaultHttpRequestRetryStrategy(int maxRetries, org.apache.hc.core5.util.TimeValue defaultRetryInterval, Collection<Class<? extends IOException>> clazzes, Collection<Integer> codes)
    • DefaultHttpRequestRetryStrategy

      public DefaultHttpRequestRetryStrategy(int maxRetries, org.apache.hc.core5.util.TimeValue defaultRetryInterval)
      Create the HTTP request retry strategy using the following list of non-retriable I/O exception classes:
      • InterruptedIOException
      • UnknownHostException
      • ConnectException
      • ConnectionClosedException
      • NoRouteToHostException
      • SSLException
      and retriable HTTP status codes:
      • SC_TOO_MANY_REQUESTS (429)
      • SC_SERVICE_UNAVAILABLE (503)
      Parameters:
      maxRetries - how many times to retry; 0 means no retries
      defaultRetryInterval - the default retry interval between subsequent retries if the Retry-After header is not set or invalid.
    • DefaultHttpRequestRetryStrategy

      public DefaultHttpRequestRetryStrategy()
      Create the HTTP request retry strategy with a max retry count of 1, default retry interval of 1 second, and using the following list of non-retriable I/O exception classes:
      • InterruptedIOException
      • UnknownHostException
      • ConnectException
      • ConnectionClosedException
      • SSLException
      and retriable HTTP status codes:
      • SC_TOO_MANY_REQUESTS (429)
      • SC_SERVICE_UNAVAILABLE (503)
  • Method Details

    • retryRequest

      public boolean retryRequest(org.apache.hc.core5.http.HttpRequest request, IOException exception, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
      Description copied from interface: HttpRequestRetryStrategy
      Determines if a method should be retried after an I/O exception occurred during execution.
      Specified by:
      retryRequest in interface HttpRequestRetryStrategy
      Parameters:
      request - the request failed due to an I/O exception
      exception - the exception that occurred
      execCount - the number of times this method has been unsuccessfully executed
      context - the context for the request execution
      Returns:
      true if the request should be retried, false otherwise
    • retryRequest

      public boolean retryRequest(org.apache.hc.core5.http.HttpResponse response, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
      Description copied from interface: HttpRequestRetryStrategy
      Determines if a method should be retried given the response from the target server.
      Specified by:
      retryRequest in interface HttpRequestRetryStrategy
      Parameters:
      response - the response from the target server
      execCount - the number of times this method has been unsuccessfully executed
      context - the context for the request execution
      Returns:
      true if the request should be retried, false otherwise
    • getRetryInterval

      public org.apache.hc.core5.util.TimeValue getRetryInterval(org.apache.hc.core5.http.HttpResponse response, int execCount, org.apache.hc.core5.http.protocol.HttpContext context)
      Description copied from interface: HttpRequestRetryStrategy
      Determines the retry interval between subsequent retries.
      Specified by:
      getRetryInterval in interface HttpRequestRetryStrategy
      Parameters:
      response - the response from the target server
      execCount - the number of times this method has been unsuccessfully executed
      context - the context for the request execution
      Returns:
      the retry interval between subsequent retries
    • handleAsIdempotent

      protected boolean handleAsIdempotent(org.apache.hc.core5.http.HttpRequest request)