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);
}
};
}
|