URLConnectionクラス
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ページにアクセスできます。URLConnetionオブジェクトは、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) | 接続タイムアウト時間を設定 |
たとえば以下では、指定されたURLからコンテンツを取得し、その内容を標準出力に書き出す例です。
UrlConnect.java
package com.example.mynavi.socket; 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:⁄⁄example.com/"); URLConnection con = url.openConnection(); try (BufferedReader reader = new BufferedReader( new InputStreamReader(con.getInputStream(), "Windows-31J"))) { while (reader.ready()) { System.out.println(reader.readLine()); } } } catch (IOException e) { e.printStackTrace(); } } }
<!doctype html> <html> <head> <title>Example Domain</title> ...後略...
URLConnection#getInputStreamメソッドで入力ストリームを取得できたら、あとはストリームの操作手順に従って、入力を読み込むだけです。詳しくは「ストリーム」の節も合わせて参照してください。