Interface StreamingHttpClient
- All Superinterfaces:
AutoCloseable,Closeable,HttpClient,io.micronaut.context.LifeCycle<HttpClient>
HttpClient that supports streaming responses.- Since:
- 1.0
-
Field Summary
Fields inherited from interface io.micronaut.http.client.HttpClient
DEFAULT_ERROR_TYPE -
Method Summary
Modifier and TypeMethodDescriptionstatic StreamingHttpClientCreate a newStreamingHttpClient.static StreamingHttpClientcreate(@Nullable URL url, @NonNull HttpClientConfiguration configuration) Create a newStreamingHttpClientwith the specified configuration.<I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>dataStream(@NonNull io.micronaut.http.HttpRequest<I> request) Request a stream of data where each emitted item is aByteBufferinstance.<I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>dataStream(@NonNull io.micronaut.http.HttpRequest<I> request, @NonNull io.micronaut.core.type.Argument<?> errorType) Request a stream of data where each emitted item is aByteBufferinstance.<I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>>exchangeStream(@NonNull io.micronaut.http.HttpRequest<I> request) Requests a stream data where each emitted item is aByteBufferwrapped in theHttpResponseobject (which remains the same for each emitted item).<I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>>exchangeStream(@NonNull io.micronaut.http.HttpRequest<I> request, @NonNull io.micronaut.core.type.Argument<?> errorType) Requests a stream data where each emitted item is aByteBufferwrapped in theHttpResponseobject (which remains the same for each emitted item).jsonStream(@NonNull io.micronaut.http.HttpRequest<I> request) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.<I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull io.micronaut.http.HttpRequest<I> request, @NonNull io.micronaut.core.type.Argument<O> type) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.<I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull io.micronaut.http.HttpRequest<I> request, @NonNull io.micronaut.core.type.Argument<O> type, @NonNull io.micronaut.core.type.Argument<?> errorType) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.default <I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull io.micronaut.http.HttpRequest<I> request, @NonNull Class<O> type) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.Methods inherited from interface io.micronaut.http.client.HttpClient
exchange, exchange, exchange, exchange, exchange, exchange, refresh, retrieve, retrieve, retrieve, retrieve, retrieve, toBlockingMethods inherited from interface io.micronaut.context.LifeCycle
close, isRunning, start, stop
-
Method Details
-
dataStream
<I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request) Request a stream of data where each emitted item is aByteBufferinstance.- Type Parameters:
I- The request body type- Parameters:
request- The request- Returns:
- A
Publisherthat emits a stream ofByteBufferinstances
-
dataStream
<I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request, @NonNull @NonNull io.micronaut.core.type.Argument<?> errorType) Request a stream of data where each emitted item is aByteBufferinstance.- Type Parameters:
I- The request body type- Parameters:
request- The requesterrorType- The type that the response body should be coerced into if the server responds with an error- Returns:
- A
Publisherthat emits a stream ofByteBufferinstances - Since:
- 3.1.0
-
exchangeStream
<I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request) Requests a stream data where each emitted item is aByteBufferwrapped in theHttpResponseobject (which remains the same for each emitted item).- Type Parameters:
I- The request body type- Parameters:
request- TheHttpRequest- Returns:
- A
Publisherthat emits a stream ofByteBufferinstances wrapped by aHttpResponse
-
exchangeStream
<I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request, @NonNull @NonNull io.micronaut.core.type.Argument<?> errorType) Requests a stream data where each emitted item is aByteBufferwrapped in theHttpResponseobject (which remains the same for each emitted item).- Type Parameters:
I- The request body type- Parameters:
request- TheHttpRequesterrorType- The type that the response body should be coerced into if the server responds with an error- Returns:
- A
Publisherthat emits a stream ofByteBufferinstances wrapped by aHttpResponse - Since:
- 3.1.0
-
jsonStream
<I> org.reactivestreams.Publisher<Map<String,Object>> jsonStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.
The downstream
Subscribercan regulate demand via the subscription- Type Parameters:
I- The request body type- Parameters:
request- TheHttpRequestto execute- Returns:
- A
Publisherthat emits the fullHttpResponseobject
-
jsonStream
<I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request, @NonNull @NonNull io.micronaut.core.type.Argument<O> type) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.
The downstream
Subscribercan regulate demand via the subscription. Incoming data is buffered.- Type Parameters:
I- The request body typeO- The response type- Parameters:
request- TheHttpRequestto executetype- The type of object to convert the JSON into- Returns:
- A
Publisherthat emits the fullHttpResponseobject
-
jsonStream
<I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request, @NonNull @NonNull io.micronaut.core.type.Argument<O> type, @NonNull @NonNull io.micronaut.core.type.Argument<?> errorType) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.
The downstream
Subscribercan regulate demand via the subscription. Incoming data is buffered.- Type Parameters:
I- The request body typeO- The response type- Parameters:
request- TheHttpRequestto executetype- The type of object to convert the JSON intoerrorType- The type that the response body should be coerced into if the server responds with an error- Returns:
- A
Publisherthat emits the fullHttpResponseobject - Since:
- 3.1.0
-
jsonStream
default <I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull @NonNull io.micronaut.http.HttpRequest<I> request, @NonNull @NonNull Class<O> type) Perform an HTTP request and receive data as a stream of JSON objects as they become available without blocking.
The downstream
Subscribercan regulate demand via the subscription- Type Parameters:
I- The request body typeO- The response type- Parameters:
request- TheHttpRequestto executetype- The type of object to convert the JSON into- Returns:
- A
Publisherthat emits the fullHttpResponseobject
-
create
Create a newStreamingHttpClient. Note that this method should only be used outside of the context of a Micronaut application. The returnedStreamingHttpClientis not subject to dependency injection. The creator is responsible for closing the client to avoid leaking connections. Within a Micronaut application useInjectto inject a client instead.- Parameters:
url- The base URL- Returns:
- The client
-
create
static StreamingHttpClient create(@Nullable @Nullable URL url, @NonNull @NonNull HttpClientConfiguration configuration) Create a newStreamingHttpClientwith the specified configuration. Note that this method should only be used outside of the context of an application. Within Micronaut useInjectto inject a client instead- Parameters:
url- The base URLconfiguration- the client configuration- Returns:
- The client
- Since:
- 2.2.0
-