Java URLConnectionクラス - HTTP通信の実行

HTTP通信の実行 - URLConnectionクラス

URL(String spec)
URL(String protocol, String host, int port, String file)
  spec: URL文字列
  protocol: プロトコル名
  host: ホスト名
  port: ポート番号
  file: ファイル名

URLConnectionクラス(java.netパッケージ)を利用すると、HTTPを通じてWebページにアクセスできます。URLConnectionオブジェクトはURL#openConnectionメソッドで取得できます。

URLConnectionクラスの主なメソッド

URLConnectionクラスで使用できる主なメソッドは次のとおりです。

メソッド 概要
void connect() 現在のURLに接続します。
int getConnectTimeout() 接続タイムアウト時間を取得します。
Object getContent() コンテンツを取得します。
String getContentEncoding() content-encodingヘッダーの値を取得します。
int getContentLength() content-lengthヘッダーの値を取得します。
String getContentType() content-typeヘッダーの値を取得します。
long getDate() dateヘッダーの値を取得します。
String getHeaderField(String name) 指定されたヘッダーの値を取得します。
long getHeaderFieldDate(String name, long Default) 指定されたヘッダーを日付として解釈した値を取得します。
int getHeaderFieldInt(String name, int Default) 指定されたヘッダーを数値として解釈した値を取得します。
InputStream getInputStream() 現在の接続から読み込む入力ストリームを取得します。
OutputStream getOutputStream() 現在の接続へ書き込む出力ストリームを取得します。
void setConnectTimeout(int timeout) 接続タイムアウト時間を設定します。

URLConnectionの例

次は、指定されたURLからコンテンツを取得し、その内容を出力する例です。

UrlConnect.java

package com.devkuma.basic.http;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnect {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://devkuma.com/");
            URLConnection con = url.openConnection();
            try (BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"))) {
                while (reader.ready()) {
                    System.out.println(reader.readLine());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

実行結果:

<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

URLConnection#getInputStreamメソッドで入力ストリームを取得でき、あとはストリームの操作手順に従って入力を読み込むだけです。詳しくは「ストリーム」を参照してください。