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

牟星火
2023-12-01

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

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

用法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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/open1426475044976.html
 类似资料: