初心者向けです
我らが @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
あとがき
- グロースハッカー消えてください