org.apache.http.impl.client
Class AutoRetryHttpClient

java.lang.Object
  extended by 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.