Interface StreamingHttpClient
-
- All Superinterfaces:
AsyncCloseable
,java.lang.AutoCloseable
,FilterableStreamingHttpClient
,GracefulAutoCloseable
,ListenableAsyncCloseable
,StreamingHttpRequester
,StreamingHttpRequestFactory
public interface StreamingHttpClient extends FilterableStreamingHttpClient, GracefulAutoCloseable
The equivalent ofHttpClient
but that acceptsStreamingHttpRequest
and returnsStreamingHttpResponse
.
-
-
Method Summary
-
Methods inherited from interface io.servicetalk.concurrent.api.AsyncCloseable
closeAsync, closeAsyncGracefully
-
Methods inherited from interface io.servicetalk.concurrent.api.ListenableAsyncCloseable
onClose
-
Methods inherited from interface io.servicetalk.http.api.StreamingHttpRequester
executionContext, httpResponseFactory, request
-
-
-
-
Method Detail
-
request
Single<StreamingHttpResponse> request(StreamingHttpRequest request)
Send arequest
.- Parameters:
request
- the request to send.- Returns:
- The response.
-
reserveConnection
Single<ReservedStreamingHttpConnection> reserveConnection(HttpRequestMetaData metaData)
Reserve aStreamingHttpConnection
based on providedHttpRequestMetaData
.- Parameters:
metaData
- Allows the underlying layers to know whatStreamingHttpConnection
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 theReservedStreamingHttpConnection
upon completion.
-
reserveConnection
Single<ReservedStreamingHttpConnection> reserveConnection(HttpExecutionStrategy strategy, HttpRequestMetaData metaData)
Description copied from interface:FilterableStreamingHttpClient
Reserve aStreamingHttpConnection
based on providedHttpRequestMetaData
.- Specified by:
reserveConnection
in interfaceFilterableStreamingHttpClient
- Parameters:
strategy
-HttpExecutionStrategy
to use.metaData
- Allows the underlying layers to know whatStreamingHttpConnection
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 theReservedStreamingHttpConnection
upon completion.
-
asClient
HttpClient asClient()
Convert thisStreamingHttpClient
to theHttpClient
API.This API is provided for convenience. It is recommended that filters are implemented using the
StreamingHttpClient
asynchronous API for maximum portability.- Returns:
- a
HttpClient
representation of thisStreamingHttpRequester
.
-
asBlockingStreamingClient
BlockingStreamingHttpClient asBlockingStreamingClient()
Convert thisStreamingHttpClient
to theBlockingStreamingHttpClient
API.This API is provided for convenience for a more familiar sequential programming model. It is recommended that filters are implemented using the
StreamingHttpClient
asynchronous API for maximum portability.- Returns:
- a
BlockingStreamingHttpClient
representation of thisStreamingHttpClient
.
-
asBlockingClient
BlockingHttpClient asBlockingClient()
Convert thisStreamingHttpClient
to theBlockingHttpClient
API.This API is provided for convenience for a more familiar sequential programming model. It is recommended that filters are implemented using the
StreamingHttpClient
asynchronous API for maximum portability.- Returns:
- a
BlockingHttpClient
representation of thisStreamingHttpClient
.
-
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.
-
-