このURLへの接続を開いて、 その接続から読み込むためのInputStreamを取得します。
public final InputStream openStream() throws IOExceptionopenStream - 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 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)
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クラスでの方法と同じです。