Class ResponseBodyInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class ResponseBodyInputStream
    extends java.io.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.
    • Field Summary

      • Fields inherited from class java.io.FilterInputStream

        in
    • Constructor Summary

      Constructors 
      Constructor Description
      ResponseBodyInputStream​(okhttp3.Response response)
      Constructs a ResponseBodyInputStream that wraps the InputStream from the given OkHttp Response object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes the InputStream and the associated OkHttp Response object.
      • Methods inherited from class java.io.FilterInputStream

        available, mark, markSupported, read, read, read, reset, skip
      • Methods inherited from class java.io.InputStream

        nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ResponseBodyInputStream

        public ResponseBodyInputStream​(okhttp3.Response response)
                                throws java.io.IOException
        Constructs a ResponseBodyInputStream that wraps the InputStream from the given OkHttp Response object.
        Parameters:
        response - the OkHttp Response object from which the InputStream is retrieved
        Throws:
        java.io.IOException - if an I/O error occurs while retrieving the InputStream
    • Method Detail

      • close

        public void close()
                   throws java.io.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 in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterInputStream
        Throws:
        java.io.IOException - if an I/O error occurs