LoginSignup
28
28

More than 5 years have passed since last update.

Android でHTTP通信(ダウンロードとか)させる実装をする前に理解しておくこと

Last updated at Posted at 2014-04-25

初心者向けです

我らが @KeithYokoma が素敵な記事「Java - HttpUrlConnection とエラーハンドリング - Qiita - http://goo.gl/hX9FVV 」を書いていたので、初心者向けに書きます。

けつろん

  • HttpUrlConnection 使え
  • DefaultHttpClient 古いデバイスサポートするなら使え
  • AndroidHttpClient 使うな

まとめ

HttpUrlConnection

軽量APIでバッテリーにも優しい

DefaultHttpClient

Apache のHTTP Clientの実装で、機能も豊富。

AndroidHttpClient

放置されているかわいそうな子

ちゅうい

新しいめのAndroidでは、UIスレッド(メインスレッド)ではHTTP通信させないようになってます。NetworkOnMainThreadException 例外が発生したら、面倒でも AsyncTask とか AsyncTaskLoader 使って、そこから通信させてください。面倒でごめんね。

あと、DefaultHttpClient 使う場合はタイムアウトの設定は忘れずに。デフォルトでは永遠に待つようになってるよ。

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 8000);// 8秒(★自分で変更して)
HttpConnectionParams.setSoTimeout(httpParams, 4000);// 4秒(★自分で変更して)

HttpClient client = new DefaultHttpClient(httpParams);

よんでおくべき記事

  • HttpUrlConnection とエラーハンドリング - Qiita - http://goo.gl/hX9FVV
  • Y.A.M の 雑記帳: Android Apache HTTP Client と HttpURLConnection どっちを使うべき? - http://goo.gl/4PZHPy

あとがき

  • グロースハッカー消えてください
28
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
28