> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ResponseBodyInputStream

> A custom InputStream that wraps the InputStream from the OkHttp Response and ensures that the OkHttp Response object is properly closed when the stream is closed.

Package: [`com.coinbase.cdp.core`](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/index)

```java theme={null}
public class ResponseBodyInputStream extends FilterInputStream
```

A custom InputStream that wraps the InputStream from the OkHttp Response and ensures that the OkHttp Response object is properly closed when the stream is closed. This class extends FilterInputStream and takes an OkHttp Response object as a parameter. It retrieves the InputStream from the Response and overrides the close method to close both the InputStream and the Response object, ensuring proper resource management and preventing premature closure of the underlying HTTP connection.

## Constructor Details

### `ResponseBodyInputStream`

```java theme={null}
public ResponseBodyInputStream(okhttp3.Response response) throws IOException
```

Constructs a ResponseBodyInputStream that wraps the InputStream from the given OkHttp Response object.

**Parameters:**

`response` (`okhttp3.Response`) - the OkHttp Response object from which the InputStream is retrieved

**Throws:**

`[IOException](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html "class or interface in java.io")` - if an I/O error occurs while retrieving the InputStream

## Method Details

### `close`

```java theme={null}
public void close() throws IOException
```

Closes the InputStream and the associated OkHttp Response object. This ensures that the underlying HTTP connection is properly closed after the stream is no longer needed.

**Specified by:**

`[close](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html#close\(\) "class or interface in java.lang")` in interface `[AutoCloseable](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html "class or interface in java.lang")`

**Specified by:**

`[close](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html#close\(\) "class or interface in java.io")` in interface `[Closeable](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html "class or interface in java.io")`

**Overrides:**

`[close](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FilterInputStream.html#close\(\) "class or interface in java.io")` in class `[FilterInputStream](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FilterInputStream.html "class or interface in java.io")`

**Throws:**

`[IOException](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html "class or interface in java.io")` - if an I/O error occurs

**Returns:**

`void`
