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(); } } }
※関連コンテンツ