Java SE 9では、標準化が完了していないAPIを実験的に導入するために「Incubator Module」が用意されたことを前回紹介しました。Java SE 9で提供されるIncubator Moduleは1つだけ。今回紹介する「HTTP/2 Client」です。

 HTTP/2 Clientの概要を簡単におさらいしておきましょう。HTTP/2 Clientは、java.net.HttpURLConnectionクラスを置きかえることを目的としたAPIです。HTTP/2だけでなく、HTTP/1.1やWebSocketもサポートする、HTTP通信のためのAPIとなります。

 主なクラス/インタフェースは以下の4つです。

  • HttpClientクラス
  • HttpRequestクラス
  • HttpResponseクラス
  • WebSocketインタフェース

 今回は、HTTP/1.1のGETメソッドを例に基本的な使い方を示します。HTTP/1.1のPOSTメソッド、HTTP/2、WebSocketについては次回以降に紹介する予定です。

基本的な使用法

 まずは最も基本的な、HTTP通信のGETでWebページを取得してみましょう。ページを取得するまでの手順は以下の通りです。

  1. HttpClientオブジェクトの生成
  2. HttpRequestオブジェクトを生成し、HTTPリクエストを作成
  3. HttpClientオブジェクトから、HTTPリクエストを送信
  4. HttpResponseオブジェクトを使用して、HTTPレスポンスを処理

 では、実際のコードを見ていきましょう。