Class HttpClientBase
java.lang.Object
org.apache.lucene.replicator.http.HttpClientBase
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
HttpReplicator
Base class for Http clients.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Default connection timeout for this client, in milliseconds.static final int
Default socket timeout for this client, in milliseconds.protected final String
The URL stting to execute requests against. -
Constructor Summary
ModifierConstructorDescriptionprotected
HttpClientBase
(String host, int port, String path, org.apache.http.conn.HttpClientConnectionManager conMgr, org.apache.http.client.config.RequestConfig defaultConfig) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected <T> T
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
Same asdoAction(HttpResponse, boolean, Callable)
but always do consume at the end.protected final void
ThrowsAlreadyClosedException
if this client is already closed.protected org.apache.http.HttpResponse
executeGET
(String request, String... params) internal: execute a request and return its result Theparams
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 Theparams
argument is treated as: name1,value1,name2,value2,...protected final boolean
isClosed()
Returns true iff this instance wasclosed
, otherwise returns false.responseInputStream
(org.apache.http.HttpResponse response) Internal utility: input stream of the provided responseresponseInputStream
(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.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.
-
Field Details
-
DEFAULT_CONNECTION_TIMEOUT
public static final int DEFAULT_CONNECTION_TIMEOUTDefault connection timeout for this client, in milliseconds.- See Also:
-
DEFAULT_SO_TIMEOUT
public static final int DEFAULT_SO_TIMEOUTDefault socket timeout for this client, in milliseconds.- See Also:
-
url
The URL stting to execute requests against.
-
-
Constructor Details
-
HttpClientBase
protected HttpClientBase(String host, int port, String path, org.apache.http.conn.HttpClientConnectionManager conMgr, org.apache.http.client.config.RequestConfig defaultConfig) - Parameters:
conMgr
- connection manager to use for this http client. NOTE:The providedHttpClientConnectionManager
will not beHttpClientConnectionManager.shutdown()
by this class.defaultConfig
- the defaultRequestConfig
to set on the client. Ifnull
a default config is created w/ the default connection and socket timeouts.
-
-
Method Details
-
ensureOpen
ThrowsAlreadyClosedException
if this client is already closed.- Throws:
AlreadyClosedException
-
verifyStatus
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 Theparams
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 Theparams
argument is treated as: name1,value1,name2,value2,...- Throws:
IOException
-
responseInputStream
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() -
doAction
protected <T> T doAction(org.apache.http.HttpResponse response, Callable<T> call) throws IOException Same asdoAction(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 onconsume
parameter.- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-