Package io.servicetalk.http.api
Interface HttpClient
- All Superinterfaces:
AsyncCloseable
,AutoCloseable
,GracefulAutoCloseable
,HttpRequester
,HttpRequestFactory
,ListenableAsyncCloseable
Provides a means to issue requests against HTTP service. The implementation is free to maintain a collection of
HttpConnection
instances and distribute calls to HttpRequester.request(HttpRequest)
amongst this collection.-
Method Summary
Modifier and TypeMethodDescriptiondefault BlockingHttpClient
Convert thisHttpClient
to theBlockingHttpClient
API.default BlockingStreamingHttpClient
Convert thisHttpClient
to theBlockingStreamingHttpClient
API.Convert thisHttpClient
to theStreamingHttpClient
API.default void
close()
default void
Used to close/shutdown a resource, similar toAutoCloseable.close()
, but attempts to cleanup state before abruptly closing.reserveConnection
(HttpRequestMetaData metaData) Reserve anHttpConnection
based 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, onClosing
-
Method Details
-
reserveConnection
Reserve anHttpConnection
based on providedHttpRequestMetaData
.If a new connection should be opened instead of potentially reusing an already established one, the
HttpContextKeys.HTTP_FORCE_NEW_CONNECTION
must be set.- Parameters:
metaData
- Allows the underlying layers to know whatHttpConnection
s are valid to reserve for futurerequests
with the sameHttpRequestMetaData
. For example this may provide some insight into shard or other info.- Returns:
- a
Single
that provides theReservedHttpConnection
upon completion. - See Also:
-
asStreamingClient
StreamingHttpClient asStreamingClient()Convert thisHttpClient
to theStreamingHttpClient
API.- Returns:
- a
StreamingHttpClient
representation of thisHttpClient
.
-
asBlockingStreamingClient
Convert thisHttpClient
to theBlockingStreamingHttpClient
API.- Returns:
- a
BlockingStreamingHttpClient
representation of thisHttpClient
.
-
asBlockingClient
Convert thisHttpClient
to theBlockingHttpClient
API.- Returns:
- a
BlockingHttpClient
representation of thisHttpClient
.
-
close
- Specified by:
close
in interfaceAutoCloseable
- Throws:
Exception
-
closeGracefully
Description copied from interface:GracefulAutoCloseable
Used 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:
closeGracefully
in interfaceGracefulAutoCloseable
- Throws:
Exception
- if graceful closure failed.
-