JavaのURLクラスを使いこなす:ウェブへ簡単にアクセス

文:Jeff Hanson(TechRepublic)  翻訳校正:原井彰弘
2007-12-13 10:05:00
  • このエントリーをはてなブックマークに追加

URLのコネクションを開く

 さて、URLクラスのインスタンスを正しく作成できたら、そのインスタンスを用いて操作を行ってみよう。ただし、URLのリソースやコンテンツにアクセスする前に、まずコネクションを開く必要がある。この処理は、openConnectionメソッドを呼び出すことで行える。

 openConnectionメソッドは引数を何も受け取らず、成功するとURLConnectionクラスのインスタンスを返す。リストAでは、実際にURLへのコネクションを開く処理を行っている。コネクションを正しく開くことができたら、URLConnectionオブジェクトの入力ストリームや出力ストリームを用いて読み書きを行うことが可能になる。

リストA

import java.net.*;
import java.io.*;

public void openURLConnection()
{
try
{
URL url = new URL("http://www.example.com");
URLConnection connection = url.openConnection();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}

URLから読み取る

 java.ioに含まれているストリーム関連のクラスを用いれば、URLからの読み取りは簡単に行える。コネクションを開くことに成功したなら、コネクションの入力ストリームを取得して読み取りを始めよう。URLは多種多様なデータ形式からなるリソースを表現することができる。幸い、java.ioパッケージのクラス群は、URLConnectionオブジェクトのストリームから返されたデータを、ファイルのストリームやソケットのストリームと同様に扱うことが可能となっている。リストBはURLからテキストデータを読み取る方法を示している。

リストB

import java.net.*;
import java.io.*;

public void readFromURL()
{
try
{
URL url = new URL("http://www.example.com");
URLConnection connection = url.openConnection();
connection.setDoInput(true);
InputStream inStream = connection.getInputStream();
BufferedReader input =
new BufferedReader(new InputStreamReader(inStream));

String line = "";
while ((line = input.readLine()) != null)
System.out.println(line);
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]