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 ofHttpConnection
instances and distribute calls torequest(HttpRequest)
amongst this collection.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default BlockingHttpClient
asBlockingClient()
Convert thisHttpClient
to theBlockingHttpClient
API.default BlockingStreamingHttpClient
asBlockingStreamingClient()
Convert thisHttpClient
to theBlockingStreamingHttpClient
API.StreamingHttpClient
asStreamingClient()
Convert thisHttpClient
to theStreamingHttpClient
API.default void
close()
default void
closeGracefully()
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 anHttpConnection
based on providedHttpRequestMetaData
.Single<ReservedHttpConnection>
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
-
-
-
-
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 anHttpConnection
based on providedHttpRequestMetaData
.- 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.
-
reserveConnection
Single<ReservedHttpConnection> reserveConnection(HttpExecutionStrategy strategy, HttpRequestMetaData metaData)
Reserve anHttpConnection
based on providedHttpRequestMetaData
.Note: reserved connections may not be restricted by the max pipelined requests count.
- Parameters:
strategy
-HttpExecutionStrategy
to use.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.
-
asStreamingClient
StreamingHttpClient asStreamingClient()
Convert thisHttpClient
to theStreamingHttpClient
API.- Returns:
- a
StreamingHttpClient
representation of thisHttpClient
.
-
asBlockingStreamingClient
default BlockingStreamingHttpClient asBlockingStreamingClient()
Convert thisHttpClient
to theBlockingStreamingHttpClient
API.- Returns:
- a
BlockingStreamingHttpClient
representation of thisHttpClient
.
-
asBlockingClient
default BlockingHttpClient asBlockingClient()
Convert thisHttpClient
to theBlockingHttpClient
API.- Returns:
- a
BlockingHttpClient
representation of thisHttpClient
.
-
close
default void close() throws java.lang.Exception
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Throws:
java.lang.Exception
-
closeGracefully
default void closeGracefully() throws java.lang.Exception
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:
java.lang.Exception
- if graceful closure failed.
-
-