## org.apache.http.impl.client
Class AutoRetryHttpClient

    java.lang.Object
      org.apache.http.impl.client.AutoRetryHttpClient

All Implemented Interfaces:
  HttpClient

    @ThreadSafe
    public class AutoRetryHttpClient

extends Object
implements HttpClient

`HttpClient` implementation that can automatically retry the request in case of a non-2xx response using the `ServiceUnavailableRetryStrategy` interface.

Since:
  4.2

Constructor Summary
`AutoRetryHttpClient()` Constructs a `AutoRetryHttpClient` with default caching settings that stores cache entries in memory and uses a vanilla `DefaultHttpClient` for backend requests.
`AutoRetryHttpClient(HttpClient client)` Constructs a `AutoRetryHttpClient` with default caching settings that stores cache entries in memory and uses the given `HttpClient` for backend requests.
`AutoRetryHttpClient(HttpClient client, ServiceUnavailableRetryStrategy retryStrategy)`
`AutoRetryHttpClient(ServiceUnavailableRetryStrategy config)` Constructs a `AutoRetryHttpClient` with the given caching options that stores cache entries in memory and uses a vanilla `DefaultHttpClient` for backend requests.

Method Summary
`HttpResponse` `execute(HttpHost target, HttpRequest request)` Executes a request to the target using the default context.
`HttpResponse` `execute(HttpHost target, HttpRequest request, HttpContext context)` Executes a request to the target using the given context.

`

`<T> T`

`

`execute(HttpHost target, HttpRequest request, ResponseHandler<? extends T> responseHandler)`
Executes a request to the target using the default context and processes the response using the given response handler.

`

`<T> T`

`

`execute(HttpHost target, HttpRequest request, ResponseHandler<? extends T> responseHandler, HttpContext context)`
Executes a request to the target using the given context and processes the response using the given response handler.

`HttpResponse` `execute(HttpUriRequest request)` Executes a request using the default context.
`HttpResponse` `execute(HttpUriRequest request, HttpContext context)` Executes a request using the given context.

`

`<T> T`

`

`execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler)`
Executes a request using the default context and processes the response using the given response handler.

`

`<T> T`

`

`execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler, HttpContext context)`
Executes a request using the given context and processes the response using the given response handler.

`ClientConnectionManager` `getConnectionManager()` Obtains the connection manager used by this client.
`HttpParams` `getParams()` Obtains the parameters for this client.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AutoRetryHttpClient

    public AutoRetryHttpClient(HttpClient client,
                               ServiceUnavailableRetryStrategy retryStrategy)

### AutoRetryHttpClient

    public AutoRetryHttpClient()

  Constructs a `AutoRetryHttpClient` with default caching settings that stores cache entries in memory and uses a vanilla `DefaultHttpClient` for backend requests.

### AutoRetryHttpClient

    public AutoRetryHttpClient(ServiceUnavailableRetryStrategy config)

  Constructs a `AutoRetryHttpClient` with the given caching options that stores cache entries in memory and uses a vanilla `DefaultHttpClient` for backend requests.

  Parameters:
    `config` - retry configuration module options

### AutoRetryHttpClient

    public AutoRetryHttpClient(HttpClient client)

  Constructs a `AutoRetryHttpClient` with default caching settings that stores cache entries in memory and uses the given `HttpClient` for backend requests.

  Parameters:
    `client` - used to make origin requests

Method Detail

### execute

    public HttpResponse execute(HttpHost target,
                                HttpRequest request)
                         throws IOException

  Description copied from interface: `HttpClient`
  Executes a request to the target using the default context.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `target` - the target host for the request. Implementations may accept `null` if they can still determine a route, for example to a default target or by inspecting the request.
    `request` - the request to execute
  Returns:
    the response to the request. This is always a final response, never an intermediate response with an 1xx status code. Whether redirects or authentication challenges will be returned or handled automatically depends on the implementation and configuration of this client.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public <T> T execute(HttpHost target,
                         HttpRequest request,
                         ResponseHandler<? extends T> responseHandler)
              throws IOException

  Description copied from interface: `HttpClient`
  Executes a request to the target using the default context and processes the response using the given response handler.

  Implementing classes are required to ensure that the content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual `ResponseHandler` from having to manage resource deallocation internally.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `target` - the target host for the request. Implementations may accept `null` if they can still determine a route, for example to a default target or by inspecting the request.
    `request` - the request to execute
    `responseHandler` - the response handler
  Returns:
    the response object as generated by the response handler.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public <T> T execute(HttpHost target,
                         HttpRequest request,
                         ResponseHandler<? extends T> responseHandler,
                         HttpContext context)
              throws IOException

  Description copied from interface: `HttpClient`
  Executes a request to the target using the given context and processes the response using the given response handler.

  Implementing classes are required to ensure that the content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual `ResponseHandler` from having to manage resource deallocation internally.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `target` - the target host for the request. Implementations may accept `null` if they can still determine a route, for example to a default target or by inspecting the request.
    `request` - the request to execute
    `responseHandler` - the response handler
    `context` - the context to use for the execution, or `null` to use the default context
  Returns:
    the response object as generated by the response handler.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public HttpResponse execute(HttpUriRequest request)
                         throws IOException

  Description copied from interface: `HttpClient`
  Executes a request using the default context.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `request` - the request to execute
  Returns:
    the response to the request. This is always a final response, never an intermediate response with an 1xx status code. Whether redirects or authentication challenges will be returned or handled automatically depends on the implementation and configuration of this client.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public HttpResponse execute(HttpUriRequest request,
                                HttpContext context)
                         throws IOException

  Description copied from interface: `HttpClient`
  Executes a request using the given context. The route to the target will be determined by the HTTP client.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `request` - the request to execute
    `context` - the context to use for the execution, or `null` to use the default context
  Returns:
    the response to the request. This is always a final response, never an intermediate response with an 1xx status code. Whether redirects or authentication challenges will be returned or handled automatically depends on the implementation and configuration of this client.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public <T> T execute(HttpUriRequest request,
                         ResponseHandler<? extends T> responseHandler)
              throws IOException

  Description copied from interface: `HttpClient`
  Executes a request using the default context and processes the response using the given response handler.

  Implementing classes are required to ensure that the content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual `ResponseHandler` from having to manage resource deallocation internally.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `request` - the request to execute
    `responseHandler` - the response handler
  Returns:
    the response object as generated by the response handler.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public <T> T execute(HttpUriRequest request,
                         ResponseHandler<? extends T> responseHandler,
                         HttpContext context)
              throws IOException

  Description copied from interface: `HttpClient`
  Executes a request using the given context and processes the response using the given response handler.

  Implementing classes are required to ensure that the content entity associated with the response is fully consumed and the underlying connection is released back to the connection manager automatically in all cases relieving individual `ResponseHandler` from having to manage resource deallocation internally.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `request` - the request to execute
    `responseHandler` - the response handler
    `context` - the context to use for the execution, or `null` to use the default context
  Returns:
    the response object as generated by the response handler.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### execute

    public HttpResponse execute(HttpHost target,
                                HttpRequest request,
                                HttpContext context)
                         throws IOException

  Description copied from interface: `HttpClient`
  Executes a request to the target using the given context.

  Specified by:
    `execute` in interface `HttpClient`
  Parameters:
    `target` - the target host for the request. Implementations may accept `null` if they can still determine a route, for example to a default target or by inspecting the request.
    `request` - the request to execute
    `context` - the context to use for the execution, or `null` to use the default context
  Returns:
    the response to the request. This is always a final response, never an intermediate response with an 1xx status code. Whether redirects or authentication challenges will be returned or handled automatically depends on the implementation and configuration of this client.
  Throws:
    `IOException` - in case of a problem or the connection was aborted
    `ClientProtocolException` - in case of an http protocol error

### getConnectionManager

    public ClientConnectionManager getConnectionManager()

  Description copied from interface: `HttpClient`
  Obtains the connection manager used by this client.

  Specified by:
    `getConnectionManager` in interface `HttpClient`
  Returns:
    the connection manager

### getParams

    public HttpParams getParams()

  Description copied from interface: `HttpClient`
  Obtains the parameters for this client. These parameters will become defaults for all requests being executed with this client, and for the parameters of dependent objects in this client.

  Specified by:
    `getParams` in interface `HttpClient`
  Returns:
    the default parameters

Copyright © 1999-2013 The Apache Software Foundation. All Rights Reserved.