2012/03/05
Android の HTTP クライアントは何を使うべきか?
2015/9/19 追記
Android M では Apache の DefaultHttpClient が使えなくなりました。
OS イメージにはしばらく維持され、コンパイルを通すためのオプションも提供されるようですが、今後新規に作成するアプリでは HttpURLConnection を使うのが良いでしょう。
OS イメージにはしばらく維持され、コンパイルを通すためのオプションも提供されるようですが、今後新規に作成するアプリでは HttpURLConnection を使うのが良いでしょう。
Android's HTTP Clients | Android Developer's Blog
Android の HTTP クライアントは 3つあります。
元ネタでは2つって書いてありますけど、私は3つとカウントしています。
確かに大きく分けると2つなんでしょうが、使う側の選択肢としては3つあると思った方が良いんじゃないかと。
- org.apache.http.impl.client.DefaultHttpClient
Apache の提供している HTTP クライアント。
バグも少なく安定しているが、でかい。
- android.net.http.AndroidHttpClient
DefaultHttpClient を Android 用に最適化したクラス。
ただ、AndroidHttpClient | Kazzzの日記 によるとむしろ使いにくくなっているらしい。
元ネタでは、これは DefaultHttpClient と合わせて1つとカウントしている。
- java.net.HttpURLConnection
軽いらしいが、Froyo以前の実装にはバグがある。
で、どれを使ったら良いのかというと、元ネタでは、
「Froyo より前だったら Apache を、Gingerbread 以降では HttpURLConnection を使うのが良い」
と書いてあります。
Gingerbread 以降のみ対応のアプリケーションを作ることは、まだ当分の間はなさそうなので、結局のところ DefaultHttpClient を使うことになるのでしょう。
(AndroidHttpClient は使いづらそうなので、私は選択肢から外しました)
2012/3/11 追記
Android の DefaultHttpClient はデフォルトではマルチパートに対応していません。
そのため、画像をアップロードする等、マルチパートが必要な場合、以下のライブラリを追加導入する必要があります。
apache-mime4j-0.6.jar
httpmime-4.0.jar
それぞれ、
http://james.apache.org/mime4j/ の Download - Releases から
http://hc.apache.org/downloads.cgi の HttpClient から
ダウンロードすることができます。
使い方は検索するといろいろ出てくると思います。
そのため、画像をアップロードする等、マルチパートが必要な場合、以下のライブラリを追加導入する必要があります。
apache-mime4j-0.6.jar
httpmime-4.0.jar
それぞれ、
http://james.apache.org/mime4j/ の Download - Releases から
http://hc.apache.org/downloads.cgi の HttpClient から
ダウンロードすることができます。
使い方は検索するといろいろ出てくると思います。
0 件のコメント:
コメントを投稿