T
- the response body typeFlow.Subscriber<List<ByteBuffer>>
HttpResponse<T>
public static interface HttpResponse.BodySubscriber<T> extends Flow.Subscriber<List<ByteBuffer>>
BodySubscriber
consumes response body bytes and converts them into a higher-level Java type. The class BodySubscribers
provides implementations of many common body subscribers. The object acts as a Flow.Subscriber
<List
<ByteBuffer
>> to the HTTP Client implementation, which publishes lists of ByteBuffers containing the response body. The Flow of data, as well as the order of ByteBuffers in the Flow lists, is a strictly ordered representation of the response body. Both the Lists and the ByteBuffers, once passed to the subscriber, are no longer used by the HTTP Client. The subscriber converts the incoming buffers of data to some higher-level Java type T
.
The getBody()
method returns a CompletionStage
<T>
that provides the response body object. The CompletionStage
must be obtainable at any time. When it completes depends on the nature of type T
. In many cases, when T
represents the entire body after being consumed then the CompletionStage
completes after the body has been consumed. If T
is a streaming type, such as InputStream
, then it completes before the body has been read, because the calling code uses the InputStream
to consume the data.
BodySubscriber
should ensure to request more data until one of onComplete
or onError
are signalled, or cancel
its subscription if unable or unwilling to do so. Calling cancel
before exhausting the response body data may cause the underlying HTTP connection to be closed and prevent it from being reused for subsequent operations.Modifier and Type | Method | Description |
---|---|---|
CompletionStage |
getBody() |
Returns a CompletionStage which when completed will return the response body object. |
onComplete, onError, onNext, onSubscribe
CompletionStage<T> getBody()
CompletionStage
which when completed will return the response body object. This method can be called at any time relative to the other Flow.Subscriber
methods and is invoked using the client's executor
.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.net.http/java/net/http/HttpResponse.BodySubscriber.html