Androidで使えるJava SEのクラスライブラリ (4/5)
作成:2011-01-31 16:22
更新:2011-01-31 16:24
更新:2011-01-31 16:24
■java.netでネットワークアクセス!
「java.net」パッケージは、ネットワーク関係のクラスがまとめられています。これにはいろいろと機能があるのですが、Androidで利用する場合、「HTTPを使ったGET/POST」がもっとも中心的な使い方となるでしょう。これには以下のようなクラスが利用されます。
・URLクラス
URLのアドレスを管理するためのものです。まずはこのクラスを使ってURLを用意します。
・HttpURLConnectionクラス
HTTPを使って指定のURLにアクセスするための接続を管理するためのものです。ここから入出力のストリームを取り出し操作をします。
ネットワークアクセスは、これらのクラスと、ストリーム関係のクラスを組み合わせて行います。だいたい以下のような流れになります。
1. URLインスタンスの用意。
2. URLからHttpURLConnectionインスタンスを取得。
3. HttpURLConnectionで接続を開始。
4. HttpURLConnectionからInputStreamを取得。
5. InputStreamから必要なデータをロード。
6. 作業が終わったらInputStreamをclose。
7. HttpURLConnectionの接続を解除。
――下のリスト欄に、簡単なネットワークアクセスの例を上げておきます。これで、www.android.comにあるHTMLデータを1000バイト読み込んで書き出します。
実は、ネットワークアクセスは、半分ぐらいは先の「java.io」に用意されているストリームと呼ばれるクラスが使われるのです。このjava.netにあるクラスは、単に接続に関する機能を提供するだけで、実際にデータを読み書きするのはjava.ioにあるクラスを利用します。java.ioは、さまざまなデータアクセスの基本なのです。
・URLクラス
URLのアドレスを管理するためのものです。まずはこのクラスを使ってURLを用意します。
・HttpURLConnectionクラス
HTTPを使って指定のURLにアクセスするための接続を管理するためのものです。ここから入出力のストリームを取り出し操作をします。
ネットワークアクセスは、これらのクラスと、ストリーム関係のクラスを組み合わせて行います。だいたい以下のような流れになります。
1. URLインスタンスの用意。
2. URLからHttpURLConnectionインスタンスを取得。
3. HttpURLConnectionで接続を開始。
4. HttpURLConnectionからInputStreamを取得。
5. InputStreamから必要なデータをロード。
6. 作業が終わったらInputStreamをclose。
7. HttpURLConnectionの接続を解除。
――下のリスト欄に、簡単なネットワークアクセスの例を上げておきます。これで、www.android.comにあるHTMLデータを1000バイト読み込んで書き出します。
実は、ネットワークアクセスは、半分ぐらいは先の「java.io」に用意されているストリームと呼ばれるクラスが使われるのです。このjava.netにあるクラスは、単に接続に関する機能を提供するだけで、実際にデータを読み書きするのはjava.ioにあるクラスを利用します。java.ioは、さまざまなデータアクセスの基本なのです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
import java.io.*;
import java.net.*;
public class Sample {
public static void main(String[] args) {
URL url = null;
BufferedInputStream in = null;
HttpURLConnection con = null;
try {
url = new URL("http://www.android.com/");
con = (HttpURLConnection)
url.openConnection();
in = new BufferedInputStream
(con.getInputStream());
byte[] data = new byte[1024];
in.read(data);
String res = new String(data);
System.out.println(res);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
con.disconnect();
}
}
}
※関連コンテンツ