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ページを取得してみましょう。ページを取得するまでの手順は以下の通りです。
- HttpClientオブジェクトの生成
- HttpRequestオブジェクトを生成し、HTTPリクエストを作成
- HttpClientオブジェクトから、HTTPリクエストを送信
- HttpResponseオブジェクトを使用して、HTTPレスポンスを処理
では、実際のコードを見ていきましょう。