Class ResponseInputStream<ResponseT>
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- software.amazon.awssdk.core.io.SdkFilterInputStream
-
- software.amazon.awssdk.core.ResponseInputStream<ResponseT>
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Releasable
,Abortable
public final class ResponseInputStream<ResponseT> extends SdkFilterInputStream implements Abortable
Input stream that provides access to the unmarshalled POJO response returned by the service in addition to the streamed contents. This input stream should be closed after all data has been read from the stream.Note about the Apache http client: This input stream can be used to leverage a feature of the Apache http client where connections are released back to the connection pool to be reused. As such, calling
close
on this input stream will result in reading the remaining data from the stream and leaving the connection open, even if the stream was only partially read from. For large http payload, this means reading all of the http body before releasing the connection which may add latency.If it is not desired to read remaining data from the stream, you can explicitly abort the connection via
abort()
instead. This will close the underlying connection and require establishing a new HTTP connection on subsequent requests which may outweigh the cost of reading the additional data.The Url Connection and Crt http clients are not subject to this behaviour so the
close
andabort
methods will behave similarly with them.
-
-
Field Summary
-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Constructor Description ResponseInputStream(ResponseT resp, InputStream in)
ResponseInputStream(ResponseT resp, AbortableInputStream in)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abort()
Close the underlying connection, dropping all remaining data in the stream, and not leaving the connection open to be used for future requests.ResponseT
response()
-
Methods inherited from class software.amazon.awssdk.core.io.SdkFilterInputStream
abortIfNeeded, available, close, mark, markSupported, read, read, release, reset, skip
-
Methods inherited from class java.io.FilterInputStream
read
-
-
-
-
Constructor Detail
-
ResponseInputStream
public ResponseInputStream(ResponseT resp, AbortableInputStream in)
-
ResponseInputStream
public ResponseInputStream(ResponseT resp, InputStream in)
-
-
Method Detail
-
response
public ResponseT response()
- Returns:
- The unmarshalled POJO response associated with this content.
-
abort
public void abort()
Close the underlying connection, dropping all remaining data in the stream, and not leaving the connection open to be used for future requests.- Specified by:
abort
in interfaceAbortable
- Overrides:
abort
in classSdkFilterInputStream
-
-