Androidプログラマへの道 〜 Moonlight 明日香 〜 - HTTP通信でダウンロードする
HTTP通信でバイト列(テキスト, 画像データ等)をダウンロードするには, HttpURLConnectionクラスを使用する.

テキストをダウンロードする

  • HttpGet01.java
    • URLを指定して, URLクラスのインスタンスを生成する.
    • URL#openConnectionメソッドで, HttpURLConnectionクラスのインスタンスを取得する.
    • HttpURLConnection#setRequestMethodメソッドで, ダウンロード("GET")を指定する.
    • HttpURLConnection#connectメソッドで, 通信を開始する.
    • HttpURLConnection#getInputStreamメソッドで, データを取得する.
    • HttpURLConnection#disconnectメソッドで, 終了時にHTTP通信を終了する.
package com.moonlight_aska.android.httpget01;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HttpGet01 extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    HttpURLConnection http = null;
    InputStream in = null;
    TextView web = (TextView)findViewById(R.id.textview_id);
    try {
      // URLにHTTP接続
      URL url = new URL("http://www.yahoo.co.jp");
      http = (HttpURLConnection)url.openConnection();
      http.setRequestMethod("GET");
      http.connect();
      // データを取得
      in = http.getInputStream();

      // HTMLソースを読み出す
      String src = new String();
      byte[] line = new byte[1024];
      int size;
      while(true) {
        size = in.read(line);
        if(size <= 0)
          break;
        src += new String(line);
      }
      // HTMLソースを表示
      web.setText(src);
    } catch(Exception e) {
      web.setText(e.toString());
    } finally {
      try {
        if(http != null)
          http.disconnect();
        if(in != null)
          in.close();
      } catch (Exception e) {}
    }
  }
}