ネットワーク

java.net.URLクラス

openStream()

このURLへの接続を開いて、 その接続から読み込むためのInputStreamを取得します。

public final InputStream openStream() throws IOException
openStream - URL (Java Platform SE 7 )

サンプルコード

指定URLのページ内容を1行ずつ読み込み、標準出力へ出力します。

try {
    String spec = "http://example.com/";
    java.net.URL url = new java.net.URL(spec);

    java.io.InputStream inputStream = url.openStream();
    java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(inputStream);
    java.io.BufferedReader bufferedReader = new java.io.BufferedReader(inputStreamReader);

    String line;
    while((line = bufferedReader.readLine()) != null){
        System.out.println(line);
    }
    bufferedReader.close();

} catch (java.net.MalformedURLException e) {
    e.printStackTrace();
}
catch (java.io.IOException e) {
    e.printStackTrace();
}
Reading Directly from a URL (The Java™ Tutorials > Custom Networking > Working with URLs) java.net の使用 - Google App Engine | Google Developers

java.net.URLConnectionクラス

読み込み

java.net.URLConnection connection = url.openConnection();
java.io.InputStream inputStream = connection.getInputStream();

これによって取得できるInputStreamオブジェクトは、URL.openStream()の戻り値と同じものです。

書き込み

サンプルコード

指定URLへ指定データをapplication/x-www-form-urlencodedでPOSTし、それに対するレスポンスを標準出力へ出力します。レスポンスの出力は、前述の読み込みのサンプルコードと同じです。

try {
    String spec = "http://example.com/";
    java.net.URL url = new java.net.URL(spec);

    java.net.URLConnection connection = url.openConnection();

    // 書き込み
    connection.setDoOutput(true);
    java.io.OutputStream outputStream = connection.getOutputStream();
    java.io.OutputStreamWriter outputStreamWriter = new java.io.OutputStreamWriter(outputStream);

    outputStreamWriter.write("foo=123");
    outputStreamWriter.close();

    // 読み込み (レスポンスの取得)
    java.io.InputStream inputStream = connection.getInputStream();
    java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(inputStream);
    java.io.BufferedReader bufferedReader = new java.io.BufferedReader(inputStreamReader);

    String line;
    while((line = bufferedReader.readLine()) != null){
        System.out.println(line);
    }
    bufferedReader.close();

} catch (java.net.MalformedURLException e) {
    e.printStackTrace();
}
catch (java.io.IOException e) {
    e.printStackTrace();
}
Reading from and Writing to a URLConnection (The Java™ Tutorials > Custom Networking > Working with URLs)

java.net.HttpURLConnectionクラス

HTTP固有の機能を使用するには、URLConnectionを継承したHttpURLConnectionクラスが便利です。

try {
    URL url = new URL("http://localhost/");
    java.net.URLConnection connection = url.openConnection();

    HttpURLConnection http = (HttpURLConnection) connection;
    http.setRequestMethod("HEAD");

    String h0 = http.getHeaderField(0); // HTTP/1.1 200 OK
    String h1 = http.getHeaderField(1); // Sun, 01 Sep 2013 00:00:00 GMT

    int responseCode = http.getResponseCode();          // 200
    String responseMessage = http.getResponseMessage(); // OK

} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

データの読み書きは、URLConnectionから継承したgetInputStream()やgetOutputStream()でストリームを取得して行います。これはURLConnectionクラスでの方法と同じです。

ソケット (Socket)

Javaのドキュメントから検索