Package io.servicetalk.http.api
Interface HttpClient
-
- All Superinterfaces:
AsyncCloseable,java.lang.AutoCloseable,GracefulAutoCloseable,HttpRequester,HttpRequestFactory,ListenableAsyncCloseable
public interface HttpClient extends HttpRequester, GracefulAutoCloseable
Provides a means to issue requests against HTTP service. The implementation is free to maintain a collection ofHttpConnectioninstances and distribute calls torequest(HttpRequest)amongst this collection.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default BlockingHttpClientasBlockingClient()Convert thisHttpClientto theBlockingHttpClientAPI.default BlockingStreamingHttpClientasBlockingStreamingClient()Convert thisHttpClientto theBlockingStreamingHttpClientAPI.StreamingHttpClientasStreamingClient()Convert thisHttpClientto theStreamingHttpClientAPI.default voidclose()default voidcloseGracefully()Used to close/shutdown a resource, similar toAutoCloseable.close(), but attempts to cleanup state before abruptly closing.Single<HttpResponse>request(HttpRequest request)Send arequest.Single<ReservedHttpConnection>reserveConnection(HttpExecutionStrategy strategy, HttpRequestMetaData metaData)Reserve anHttpConnectionbased on providedHttpRequestMetaData.Single<ReservedHttpConnection>reserveConnection(HttpRequestMetaData metaData)Reserve anHttpConnectionbased on providedHttpRequestMetaData.-
Methods inherited from interface io.servicetalk.concurrent.api.AsyncCloseable
closeAsync, closeAsyncGracefully
-
Methods inherited from interface io.servicetalk.http.api.HttpRequester
executionContext, httpResponseFactory, request
-
Methods inherited from interface io.servicetalk.http.api.HttpRequestFactory
connect, delete, get, head, newRequest, options, patch, post, put, trace
-
Methods inherited from interface io.servicetalk.concurrent.api.ListenableAsyncCloseable
onClose
-
-
-
-
Method Detail
-
request
Single<HttpResponse> request(HttpRequest request)
Send arequest.- Parameters:
request- the request to send.- Returns:
- The response.
-
reserveConnection
Single<ReservedHttpConnection> reserveConnection(HttpRequestMetaData metaData)
Reserve anHttpConnectionbased on providedHttpRequestMetaData.- Parameters:
metaData- Allows the underlying layers to know whatHttpConnections are valid to reserve for futurerequestswith the sameHttpRequestMetaData. For example this may provide some insight into shard or other info.- Returns:
- a
Singlethat provides theReservedHttpConnectionupon completion.
-
reserveConnection
Single<ReservedHttpConnection> reserveConnection(HttpExecutionStrategy strategy, HttpRequestMetaData metaData)
Reserve anHttpConnectionbased on providedHttpRequestMetaData.Note: reserved connections may not be restricted by the max pipelined requests count.
- Parameters:
strategy-HttpExecutionStrategyto use.metaData- Allows the underlying layers to know whatHttpConnections are valid to reserve for futurerequestswith the sameHttpRequestMetaData. For example this may provide some insight into shard or other info.- Returns:
- a
Singlethat provides theReservedHttpConnectionupon completion.
-
asStreamingClient
StreamingHttpClient asStreamingClient()
Convert thisHttpClientto theStreamingHttpClientAPI.- Returns:
- a
StreamingHttpClientrepresentation of thisHttpClient.
-
asBlockingStreamingClient
default BlockingStreamingHttpClient asBlockingStreamingClient()
Convert thisHttpClientto theBlockingStreamingHttpClientAPI.- Returns:
- a
BlockingStreamingHttpClientrepresentation of thisHttpClient.
-
asBlockingClient
default BlockingHttpClient asBlockingClient()
Convert thisHttpClientto theBlockingHttpClientAPI.- Returns:
- a
BlockingHttpClientrepresentation of thisHttpClient.
-
close
default void close() throws java.lang.Exception- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.lang.Exception
-
closeGracefully
default void closeGracefully() throws java.lang.ExceptionDescription copied from interface:GracefulAutoCloseableUsed to close/shutdown a resource, similar toAutoCloseable.close(), but attempts to cleanup state before abruptly closing. This provides a hint that implementations can use to stop accepting new work and finish in flight work. This method is implemented on a "best effort" basis and may be equivalent toAutoCloseable.close().Note: Implementations may or may not apply a timeout for this operation to complete, if a caller does not want to wait indefinitely, and are unsure if the implementation applies a timeout, it is advisable to apply a timeout and force a call to
AutoCloseable.close().- Specified by:
closeGracefullyin interfaceGracefulAutoCloseable- Throws:
java.lang.Exception- if graceful closure failed.
-
-