com.amazonaws.http

## クラス HttpMethodReleaseInputStream

- java.lang.Object
- - java.io.InputStream
  - - com.amazonaws.http.HttpMethodReleaseInputStream

- すべての実装されたインタフェース:
    java.io.Closeable, java.lang.AutoCloseable

      public class HttpMethodReleaseInputStream
      extends java.io.InputStream

  適切なクラスにラップするため、 HttpClient のライブラリの　HttpMethod オブジェクトから InputStreams を入手し、 ストリームを確保して、 HTTP 接続を正しく解放します。

  このインプットストリームラッパーは、インプットストリームの接続のすべての内容を読み取った後、 HttpClient 接続が正しくクリーンアップされている、もしくはインプットストリームが閉じられているのかにより、 インプットストリームを得られることを確認します。 さらに、このクラスには情報の漏洩を防ぐため、最終手段として接続を解放し、このオブジェクトのファイナライザメソッドでストリームを閉じます。

  重要： このインプットストリームは、完全に実行されるか、必要なクリーンアップが実行できることを確認するために閉じられます。

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `HttpMethodReleaseInputStream(org.apache.http.HttpEntityEnclosingRequest httpMethod)` HTTP コネクションを示す `HttpMethod` を基礎としたインプットストリームを構築します。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `available()` 基本的にインプットストリームは、ラッパーストリームから何らかのエラーが発生した場合、 `releaseConnection()` の呼び出しを除くメソッドを利用できます。
    `void` | `close()` 基本的にインプットストリームは、インプットストリームが閉じられる前に `releaseConnection()` の呼び出しを除くメソッドを閉じます。
    `protected void` | `finalize()` Tries to ensure a connection is always cleaned-up correctly by calling `releaseConnection()` on class destruction if the cleanup hasn't already been done.
    `org.apache.http.HttpEntityEnclosingRequest` | `getHttpRequest()` 実際の HTTP 接続を含む、もしくは管理する、基本的な HttpMethod オブジェクトを返します。
    `int` | `read()` 基本的にインプットストリームは、基礎となるインプットストリームが実行された場合、 `releaseConnection()` を除くメソッドを読み取ります。
    `int` | `read(byte[] b, int off, int len)` 基本的にインプットストリームは、基礎となるインプットストリームが実行された場合、 `releaseConnection()` を除くメソッドを読み取ります。
    `protected void` | `releaseConnection()` Forces the release of an HttpMethod's connection in a way that will perform all the necessary cleanup through the correct use of HttpClient methods.

    - ### クラスから継承されたメソッド java.io.InputStream

      `mark, markSupported, read, reset, skip`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### HttpMethodReleaseInputStream

          public HttpMethodReleaseInputStream(org.apache.http.HttpEntityEnclosingRequest httpMethod)

      HTTP コネクションを示す `HttpMethod` を基礎としたインプットストリームを構築します。 インプットストリームのコネクションが利用できる場合、このコンストラクタラップは `InterruptableInputStream` の基礎となるインプットストリームを構築し、利用可能な状態にします。 基礎となるコネクションが利用できな場合は、空の `ByteArrayInputStream` が利用可能になります。
      パラメータ:
        `httpMethod` - The HTTP method being executed, whose response content is to be wrapped.

  - ### メソッドの詳細

    - #### getHttpRequest

          public org.apache.http.HttpEntityEnclosingRequest getHttpRequest()

      実際の HTTP 接続を含む、もしくは管理する、基本的な HttpMethod オブジェクトを返します。
      戻り値:
        the HTTPMethod object that provides the data input stream.

    - #### releaseConnection

          protected void releaseConnection()
                                    throws java.io.IOException

      Forces the release of an HttpMethod's connection in a way that will perform all the necessary cleanup through the correct use of HttpClient methods.
      例外:
        `java.io.IOException`

    - #### read

          public int read()
                   throws java.io.IOException

      基本的にインプットストリームは、基礎となるインプットストリームが実行された場合、 `releaseConnection()` を除くメソッドを読み取ります。
      定義:
        `read` クラス内 `java.io.InputStream`
      例外:
        `java.io.IOException`
      関連項目:
        `InputStream.read()`

    - #### read

          public int read(byte[] b,
                 int off,
                 int len)
                   throws java.io.IOException

      基本的にインプットストリームは、基礎となるインプットストリームが実行された場合、 `releaseConnection()` を除くメソッドを読み取ります。
      オーバーライド:
        `read` クラス内 `java.io.InputStream`
      例外:
        `java.io.IOException`
      関連項目:
        `InputStream.read(byte[], int, int)`

    - #### available

          public int available()
                        throws java.io.IOException

      基本的にインプットストリームは、ラッパーストリームから何らかのエラーが発生した場合、 `releaseConnection()` の呼び出しを除くメソッドを利用できます。
      オーバーライド:
        `available` クラス内 `java.io.InputStream`
      例外:
        `java.io.IOException`
      関連項目:
        `InputStream.available()`

    - #### close

          public void close()
                     throws java.io.IOException

      基本的にインプットストリームは、インプットストリームが閉じられる前に `releaseConnection()` の呼び出しを除くメソッドを閉じます。
      定義:
        `close` インタフェース内 `java.io.Closeable`
      定義:
        `close` インタフェース内 `java.lang.AutoCloseable`
      オーバーライド:
        `close` クラス内 `java.io.InputStream`
      例外:
        `java.io.IOException`
      関連項目:
        `InputStream.close()`

    - #### finalize

          protected void finalize()
                           throws java.lang.Throwable

      Tries to ensure a connection is always cleaned-up correctly by calling `releaseConnection()` on class destruction if the cleanup hasn't already been done.

      This desperate cleanup act will only be necessary if the user of this class does not completely consume or close this input stream prior to object destruction. This method will log Warning messages if a forced cleanup is required, hopefully reminding the user to close their streams properly.

      オーバーライド:
        `finalize` クラス内 `java.lang.Object`
      例外:
        `java.lang.Throwable`