Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職

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:⁄⁄www.examples.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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:⁄⁄www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Find examples of anything</title>
<style type="text/css">
...後略...

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

ソケット通信
ServerSocketクラス
Socketクラス
URLConnectionクラス

Geekroid-ギークロイド(仮)|ITエンジニアの日常をささいな情報で彩るコラム

ITエンジニアの転職