android-async-httpライブラリの使用
2872 ワード
紹介する
androidでインターネットにアクセスする第三者ライブラリgithubアドレス:https://github.com/loopj/android-async-http android-async-httpホームページ:http://loopj.com/android-async-http/
特性は、非同期http要求を送信し、匿名のcalbackオブジェクトにおいて、レスポンス情報を処理する。 http要求は、UI(主)スレッド以外の非同期スレッドで発生する。 内部では、スレッド池を用いて、同時要求を処理する。 は、Request Paraamsクラスを通じてGET/POSTを構成する。 は、複数のファイルを内蔵してアップロードし、第三者ライブラリのサポートが必要ではない。 フロー式Jsonアップロードは、追加のライブラリが必要ではありません。 は、ループおよび相対リダイレクトを処理することができる。 はあなたのappサイズと比べて、倉庫のsizeはとても小さいです。全部は90 kbだけです。 は、様々な移動接続環境において、自動知能要求リトライ機構を備えている。 自動gzip応答デコード。 は、複数の形式の応答解析を内蔵し、元のバイトストリーム、string、jsonオブジェクト、さらには、レスポンスをファイルに書き込むことができます。 永久のクッキーを保存し、内部実装にはAndroidのSharedPreferencesを使用します。 BaseJson HttpResonseHandlerと各種jsonライブラリを通じて集積する。 はSAX解像器をサポートします。 は、UTF-8だけではなく、様々な言語とcontent符号化をサポートする。 Gradeで引用
appのbuid.gradleに
使用
公式提案は、静的な方法でtwitterを使用する例
clientの端でこのように使うことができます。
androidでインターネットにアクセスする第三者ライブラリgithubアドレス:https://github.com/loopj/android-async-http android-async-httpホームページ:http://loopj.com/android-async-http/
特性
appのbuid.gradleに
compile 'com.loopj.android:android-async-http:1.4.9'
を追加します。使用
公式提案は、静的な方法でtwitterを使用する例
import com.loopj.android.http.*;
public class TwitterRestClient {
private static final String BASE_URL = "https://api.twitter.com/1/";
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return BASE_URL + relativeUrl; }}
です。clientの端でこのように使うことができます。
import org.json.*;import com.loopj.android.http.*;class TwitterRestClientUsage {
public void getPublicTimeline() throws JSONException { TwitterRestClient.get("statuses/public_timeline.json", null, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
// If the response is JSONObject instead of expected JSONArray }
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {
// Pull out the first event on the public timeline
JSONObject firstEvent = timeline.get(0);
String tweetText = firstEvent.getString("text");
// Do something with the response
System.out.println(tweetText);
}
});
}
参照:RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");