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