Package org.forgerock.http.spi
Interface HttpClient
- All Superinterfaces:
AutoCloseable
,Closeable
An SPI interface for HTTP
Client
implementations. A
HttpClientProvider
is loaded during construction of a new HTTP
Client
. The first available provider is
selected and its HttpClientProvider.newHttpClient(org.forgerock.util.Options)
method
invoked in order to construct and configure a new HttpClient
.
It is the responsibility of the caller to close
the request and response messages.
HttpClient client = ...
try (Response response = client.sendAsync(...).getOrThrow()) {
// consumes the response completely
}
Note: Callers should not use try-with-resources pattern if they forward the
response asynchronously (using a Promise
for instance): the message
would be emptied before the callbacks are applied.
-
Method Summary
-
Method Details
-
sendAsync
Returns aPromise
representing the asynchronousResponse
of the givenrequest
. If any (asynchronous) processing goes wrong, the promise still contains aResponse
(probably from the 4xx or 5xx status code family).The returned
Promise
contains the response returned from the server as-is. This is responsibility of the client to produce the appropriate error response (404, 500, ...) in case of processing or transport errors.This method should never throw any runtime exception. Exceptions must use the promise chain.
- Parameters:
request
- The HTTP request to send.- Returns:
- A promise representing the pending HTTP response or any runtime exceptions that may occur.
-
close
Completes all pending requests and release resources associated with underlying implementation.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- if an I/O error occurs
-