Android 异步 HTTP 请求库:android-async-http-cached

y37f 10年前

android-async-http (android-async-http-cached)是基于 Android Asynchronous HTTP Library (https://github.com/loopj/android-async-http)  实现。

1.增加响应数据本地缓存功能。
2.便于JSON-RPC,XML-RPC方式调用。  

用法:

public class TestActivity extends Activity {         private static final int REQUEST_GET_ID = 0;      private static final int REQUEST_POST_ID = 1;      private static final int REQUEST_POST_JSON_ID = 2;      private static final int REQUEST_POST_XML_ID = 3;         private RequestManager mRequestManager;         @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          this.mRequestManager = RequestManager                  .getInstance(getApplicationContext());             get();          postParams();          postJSONObject();          postXML();      }         /**       * get by url       */      private void get() {          this.mRequestManager                  .get("http://app.shafa.com/api/push/download/52a093cf3bf55d361e000477?response-content-type=application%2fvnd.android.package-archive",                          null, requestListener, true, REQUEST_GET_ID);      }         /**       * post by RequestParams       */      private void postParams() {          final RequestParams params = new RequestParams();          params.put("key1", "value1");          params.put("key2", "value2");          this.mRequestManager.post("http://server.winfirm.net/memoServer",                  params, requestListener, REQUEST_POST_ID);      }         /**       * post by JSONObject       */      private void postJSONObject() {          final JSONObject json = new JSONObject();          try {              json.put("key1", "value1");              json.put("key2", "value2");          } catch (JSONException e) {              e.printStackTrace();          }          this.mRequestManager.post("http://server.winfirm.net/memoServer", json,                  requestListener, REQUEST_POST_JSON_ID);      }         /**       * post by xml       */      private void postXML() {          final String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><key1>value1</key1><key2>value2</key2>";          this.mRequestManager.post("http://server.winfirm.net/memoServer", xml,                  requestListener, REQUEST_POST_XML_ID);      }         /**       * request listener       */      private RequestListener requestListener = new RequestListener() {          @Override          public void onStart() {             }             @Override          public void onCompleted(int statusCode, byte[] data,                  String description, int actionId) {              try {                  System.out.println(new String(data, "UTF-8"));              } catch (Exception e) {                  e.printStackTrace();              }              if (REQUEST_GET_ID == actionId) {                  if (RequestListener.OK == statusCode) {                      // sucess                  } else {                      // handler error case                  }              } else if (REQUEST_POST_ID == actionId) {                 } else if (REQUEST_POST_JSON_ID == actionId) {                 } else if (REQUEST_POST_XML_ID == actionId) {                 }          }             @Override          public void onProgress(int bytesWritten, int totalSize, int actionId) {              System.out.println(bytesWritten + "/" + totalSize);          }      };     }

项目主页:http://www.open-open.com/lib/view/home/1426475044976