org.apache.http.client
Interface HttpClient


public interface HttpClient

This interface represents only the most basic contract for HTTP request execution. It imposes no restrictions or particular details on the request execution process and leaves the specifics of state management, authentication and redirect handling up to individual implementations. This should make it easier to decorate the interface with additional functionality such as response content caching.

The usual execution flow can be demonstrated by the code snippet below:

 HttpClient httpclient = new DefaultHttpClient();

 // Prepare a request object
 HttpGet httpget = new HttpGet("http://www.apache.org/");

 // Execute the request
 HttpResponse response = httpclient.execute(httpget);

 // Examine the response status
 System.out.println(response.getStatusLine());

 // Get hold of the response entity
 HttpEntity entity = response.getEntity();

 // If the response does not enclose an entity, there is no need
 // to worry about connection release
 if (entity != null) {
     InputStream instream = entity.getContent();
     try {

         BufferedReader reader = new BufferedReader(
                 new InputStreamReader(instream));
         // do something useful with the response
         System.out.println(reader.readLine());

     } catch (IOException ex) {

         // In case of an IOException the connection will be released
         // back to the connection manager automatically
         throw ex;

     } catch (RuntimeException ex) {

         // In case of an unexpected exception you may want to abort
         // the HTTP request in order to shut down the underlying
         // connection and release it back to the connection manager.
         httpget.abort();
         throw ex;

     } finally {

         // Closing the input stream will trigger connection release
         instream.close();

     }

     // When HttpClient instance is no longer needed,
     // shut down the connection manager to ensure
     // immediate deallocation of all system resources
     httpclient.getConnectionManager().shutdown();
 }
 

Since:
4.0

Method Summary
 org.apache.http.HttpResponse execute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request)
          Executes a request to the target using the default context.
 org.apache.http.HttpResponse execute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)
          Executes a request to the target using the given context.
<T> T
execute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.client.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(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.client.ResponseHandler<? extends T> responseHandler, org.apache.http.protocol.HttpContext context)
          Executes a request to the target using the given context and processes the response using the given response handler.
 org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest request)
          Executes a request using the default context.
 org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest request, org.apache.http.protocol.HttpContext context)
          Executes a request using the given context.
<T> T
execute(org.apache.http.client.methods.HttpUriRequest request, org.apache.http.client.ResponseHandler<? extends T> responseHandler)
          Executes a request using the default context and processes the response using the given response handler.
<T> T
execute(org.apache.http.client.methods.HttpUriRequest request, org.apache.http.client.ResponseHandler<? extends T> responseHandler, org.apache.http.protocol.HttpContext context)
          Executes a request using the given context and processes the response using the given response handler.
 org.apache.http.conn.ClientConnectionManager getConnectionManager()
          Obtains the connection manager used by this client.
 org.apache.http.params.HttpParams getParams()
          Obtains the parameters for this client.
 

Method Detail

getParams

org.apache.http.params.HttpParams getParams()
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.

Returns:
the default parameters

getConnectionManager

org.apache.http.conn.ClientConnectionManager getConnectionManager()
Obtains the connection manager used by this client.

Returns:
the connection manager

execute

org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest request)
                                     throws java.io.IOException,
                                            org.apache.http.client.ClientProtocolException
Executes a request using the default context.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest request,
                                     org.apache.http.protocol.HttpContext context)
                                     throws java.io.IOException,
                                            org.apache.http.client.ClientProtocolException
Executes a request using the given context. The route to the target will be determined by the HTTP client.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

org.apache.http.HttpResponse execute(org.apache.http.HttpHost target,
                                     org.apache.http.HttpRequest request)
                                     throws java.io.IOException,
                                            org.apache.http.client.ClientProtocolException
Executes a request to the target using the default context.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

org.apache.http.HttpResponse execute(org.apache.http.HttpHost target,
                                     org.apache.http.HttpRequest request,
                                     org.apache.http.protocol.HttpContext context)
                                     throws java.io.IOException,
                                            org.apache.http.client.ClientProtocolException
Executes a request to the target using the given context.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

<T> T execute(org.apache.http.client.methods.HttpUriRequest request,
              org.apache.http.client.ResponseHandler<? extends T> responseHandler)
          throws java.io.IOException,
                 org.apache.http.client.ClientProtocolException
Executes a request using the default context and processes the response using the given response handler.

Parameters:
request - the request to execute
responseHandler - the response handler
Returns:
the response object as generated by the response handler.
Throws:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

<T> T execute(org.apache.http.client.methods.HttpUriRequest request,
              org.apache.http.client.ResponseHandler<? extends T> responseHandler,
              org.apache.http.protocol.HttpContext context)
          throws java.io.IOException,
                 org.apache.http.client.ClientProtocolException
Executes a request using the given context and processes the response using the given response handler.

Parameters:
request - the request to execute
responseHandler - the response handler
Returns:
the response object as generated by the response handler.
Throws:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

<T> T execute(org.apache.http.HttpHost target,
              org.apache.http.HttpRequest request,
              org.apache.http.client.ResponseHandler<? extends T> responseHandler)
          throws java.io.IOException,
                 org.apache.http.client.ClientProtocolException
Executes a request to the target using the default context and processes the response using the given response handler.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error

execute

<T> T execute(org.apache.http.HttpHost target,
              org.apache.http.HttpRequest request,
              org.apache.http.client.ResponseHandler<? extends T> responseHandler,
              org.apache.http.protocol.HttpContext context)
          throws java.io.IOException,
                 org.apache.http.client.ClientProtocolException
Executes a request to the target using the given context and processes the response using the given response handler.

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:
java.io.IOException - in case of a problem or the connection was aborted
org.apache.http.client.ClientProtocolException - in case of an http protocol error