## org.apache.lucene.replicator.http
Class HttpClientBase

    java.lang.Object
      org.apache.lucene.replicator.http.HttpClientBase

All Implemented Interfaces:
  Closeable

Direct Known Subclasses:
  HttpReplicator

    public abstract class HttpClientBase

extends Object
implements Closeable

Base class for Http clients.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
`static int` `DEFAULT_CONNECTION_TIMEOUT` Default connection timeout for this client, in milliseconds.
`static int` `DEFAULT_SO_TIMEOUT` Default socket timeout for this client, in milliseconds.
`protected String` `url` The URL stting to execute requests against.

Constructor Summary
`protected` `HttpClientBase(String host, int port, String path, org.apache.http.conn.ClientConnectionManager conMgr)`

Method Summary
`void` `close()`

`protected

`<T> T`

`

`doAction(org.apache.http.HttpResponse response, boolean consume, Callable<T> call)`
Do a specific action and validate after the action that the status is still OK, and if not, attempt to extract the actual server side exception.

`protected

`<T> T`

`

`doAction(org.apache.http.HttpResponse response, Callable<T> call)`
Same as `doAction(HttpResponse, boolean, Callable)` but always do consume at the end.

`protected void` `ensureOpen()` Throws `AlreadyClosedException` if this client is already closed.
`protected org.apache.http.HttpResponse` `executeGET(String request, String... params)` internal: execute a request and return its result The `params` argument is treated as: name1,value1,name2,value2,...
`protected org.apache.http.HttpResponse` `executePOST(String request, org.apache.http.HttpEntity entity, String... params)` internal: execute a request and return its result The `params` argument is treated as: name1,value1,name2,value2,...
`protected boolean` `isClosed()` Returns true iff this instance was `closed`, otherwise returns false.
`InputStream` `responseInputStream(org.apache.http.HttpResponse response)` Internal utility: input stream of the provided response
`InputStream` `responseInputStream(org.apache.http.HttpResponse response, boolean consume)` Internal utility: input stream of the provided response, which optionally consumes the response's resources when the input stream is exhausted.
`void` `setConnectionTimeout(int timeout)` Set the connection timeout for this client, in milliseconds.
`void` `setSoTimeout(int timeout)` Set the socket timeout for this client, in milliseconds.
`protected void` `throwKnownError(org.apache.http.HttpResponse response, org.apache.http.StatusLine statusLine)`
`protected void` `verifyStatus(org.apache.http.HttpResponse response)` Internal: response status after invocation, and in case or error attempt to read the exception sent by the server.

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

Field Detail

### DEFAULT_CONNECTION_TIMEOUT

    public static final int DEFAULT_CONNECTION_TIMEOUT

  Default connection timeout for this client, in milliseconds.

  See Also:
    `setConnectionTimeout(int)`, Constant Field Values

### DEFAULT_SO_TIMEOUT

    public static final int DEFAULT_SO_TIMEOUT

  Default socket timeout for this client, in milliseconds.

  See Also:
    `setSoTimeout(int)`, Constant Field Values

### url

    protected final String url

  The URL stting to execute requests against.

Constructor Detail

### HttpClientBase

    protected HttpClientBase(String host,
                             int port,
                             String path,
                             org.apache.http.conn.ClientConnectionManager conMgr)

Parameters:
  `conMgr` - connection manager to use for this http client. NOTE:The provided `ClientConnectionManager` will not be `ClientConnectionManager.shutdown()` by this class.

Method Detail

### setConnectionTimeout

    public void setConnectionTimeout(int timeout)

  Set the connection timeout for this client, in milliseconds. This setting is used to modify `HttpConnectionParams.setConnectionTimeout(org.apache.http.params.HttpParams, int)`.

  Parameters:
    `timeout` - timeout to set, in millisecopnds

### setSoTimeout

    public void setSoTimeout(int timeout)

  Set the socket timeout for this client, in milliseconds. This setting is used to modify `HttpConnectionParams.setSoTimeout(org.apache.http.params.HttpParams, int)`.

  Parameters:
    `timeout` - timeout to set, in millisecopnds

### ensureOpen

    protected final void ensureOpen()
                             throws AlreadyClosedException

  Throws `AlreadyClosedException` if this client is already closed.

  Throws:
    `AlreadyClosedException`

### verifyStatus

    protected void verifyStatus(org.apache.http.HttpResponse response)
                         throws IOException

  Internal: response status after invocation, and in case or error attempt to read the exception sent by the server.

  Throws:
    `IOException`

### throwKnownError

    protected void throwKnownError(org.apache.http.HttpResponse response,
                                   org.apache.http.StatusLine statusLine)
                            throws IOException

  Throws:
    `IOException`

### executePOST

    protected org.apache.http.HttpResponse executePOST(String request,
                                                       org.apache.http.HttpEntity entity,
                                                       String... params)
                                                throws IOException

  internal: execute a request and return its result The `params` argument is treated as: name1,value1,name2,value2,...

  Throws:
    `IOException`

### executeGET

    protected org.apache.http.HttpResponse executeGET(String request,
                                                      String... params)
                                               throws IOException

  internal: execute a request and return its result The `params` argument is treated as: name1,value1,name2,value2,...

  Throws:
    `IOException`

### responseInputStream

    public InputStream responseInputStream(org.apache.http.HttpResponse response)
                                    throws IOException

  Internal utility: input stream of the provided response

  Throws:
    `IOException`

### responseInputStream

    public InputStream responseInputStream(org.apache.http.HttpResponse response,
                                           boolean consume)
                                    throws IOException

  Internal utility: input stream of the provided response, which optionally consumes the response's resources when the input stream is exhausted.

  Throws:
    `IOException`

### isClosed

    protected final boolean isClosed()

  Returns true iff this instance was `closed`, otherwise returns false. Note that if you override `close()`, you must call `super.close()`, in order for this instance to be properly closed.

### doAction

    protected <T> T doAction(org.apache.http.HttpResponse response,
                             Callable<T> call)
                  throws IOException

  Same as `doAction(HttpResponse, boolean, Callable)` but always do consume at the end.

  Throws:
    `IOException`

### doAction

    protected <T> T doAction(org.apache.http.HttpResponse response,
                             boolean consume,
                             Callable<T> call)
                  throws IOException

  Do a specific action and validate after the action that the status is still OK, and if not, attempt to extract the actual server side exception. Optionally release the response at exit, depending on `consume` parameter.

  Throws:
    `IOException`

### close

    public void close()
               throws IOException

  Specified by:
    `close` in interface `Closeable`
  Throws:
    `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.