モジュール jdk.httpserver
パッケージ com.sun.net.httpserver

クラスHttpExchange

java.lang.Object
com.sun.net.httpserver.HttpExchange
すべての実装されたインタフェース:
Request, AutoCloseable
直系の既知のサブクラス:
HttpsExchange

public abstract class HttpExchange extends Object implements AutoCloseable, Request
このクラスは、一回の交換で、受信するHTTP要求と生成される応答をカプセル化します。 これは、クライアントからの要求の検査と、応答の作成と送信のための方法を提供します。

HttpExchangeの一般的なライフサイクルを次の順序で示します:

  1. getRequestMethod()でコマンドを決定する
  2. getRequestHeaders()を使用して、リクエスト・ヘッダー(必要に応じて)を調べます。
  3. getRequestBody()は、リクエスト本文を読み取るためのInputStreamを返します。 リクエスト本文の読取り後、ストリームは閉じておく必要があります。
  4. getResponseHeaders()で、Content-Lengthを除くすべての応答ヘッダーを設定する
  5. sendResponseHeaders(int,long)で応答ヘッダーを送信する。 次のステップの前に呼び出す必要がある。
  6. getResponseBody()OutputStreamを取得して、応答本体を送信する。 応答本体が作成済みの場合は、ストリームを閉じて交換を終了する必要がある。
「交換の終了」
交換は、リクエストInputStreamとレスポンスOutputStreamの両方が閉じられると終了します。
OutputStreamをクローズすると、InputStream (まだ閉じていない場合)が暗黙的にクローズされます。 ただし、閉じる前にInputStreamのすべてのデータを使用することをお薦めします。 簡易メソッドclose()はこれらのタスクをすべて実行します。 要求本体のすべてを使用せずに交換を閉じてもエラーではありませんが、基本となるTCP接続を次の交換用に利用できなくなる場合があります。 交換の終了に失敗した場合の結果は定義されていませんが、通常はリソースの解放や再利用に失敗します。

導入されたバージョン:
1.6