Java で、サイトにアクセスして HTML を取得する方法

Perl だとほんの数行で書けてしまうことが Java だと結構かかる (C だともっとかかる)。以下は STR_URL で指定した URL の内容 (HTML) を取ってきてコンソールに表示する例。何をしているかはコメントをご覧ください。

import java.net.URL; import java.net.HttpURLConnection; import java.io.InputStreamReader; import java.io.BufferedReader; ... // アクセスする URL を文字列に設定する。 String STR_URL = "https://perltips.twinkle.cc/"; // URLを作成する。 URL url = new java.net.URL(STR_URL); // 接続を取得する (接続は new して作るのではなく、openConnection メソッドで取得する)。 HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); // ←ここは任意。なくても良い // リーダーを読んでHTTPレスポンスを取得する。 // ただし,リクエストした先のURLが画像などの場合は、InputStreamでバイト列として扱う。 // 文字エンコーディングは「JISAutoDetect」で自動検出させる。 InputStreamReader isr = new java.io.InputStreamReader(conn.getInputStream(), "JISAutoDetect"); BufferedReader br = new java.io.BufferedReader(isr); // 受信したストリームを表示 String line = null; while (null != (line = br.readLine())) {
System.out.println(line);
} // ストリームならびに接続をクローズ br.close(); conn.disconnect(); ...