史上安卓功能最全的http请求框架
一:介绍
本框架主要是get,post请求同种请求风格,并在这基础上做了缓存功能,开发者可以根据不同的缓存策略缓存或着不缓存,
WFHttpCachePolicy 缓存策略分为4种:
WFHttpCachePolicy.Default,
// *** 不提供缓存
WFHttpCachePolicy.ReturnCache_ElseLoad, // *** 返回缓存或着加载
WFHttpCachePolicy.ReturnCache_DidLoad, // *** 返回缓存并且加载
WFHttpCachePolicy. Reload_IgnoringLocalCache, // *** 忽略本地缓存并加载 (使用在更新缓存)
WFHttpCachePolicy.ReturnCache_ElseLoad, // *** 返回缓存或着加载
WFHttpCachePolicy.ReturnCache_DidLoad, // *** 返回缓存并且加载
WFHttpCachePolicy. Reload_IgnoringLocalCache, // *** 忽略本地缓存并加载 (使用在更新缓存)
二:如何使用
2.1 :自定义application,重写oncreate(), 设置context -》WFHttpEnvironment.setContext(this.getApplicationContext());
@Override
public void onCreate() {
super.onCreate();
WFHttpEnvironment.setContext(this.getApplicationContext());
}
public void onCreate() {
super.onCreate();
WFHttpEnvironment.setContext(this.getApplicationContext());
}
设置自定义application取代系统application(AndroidManifest.xml设置)
2.2 :需要的权限:请求网络、写入文件权限(缓存用到)
2.3 :GET请求
String URLString = "http://wiki.mbalib.com/wiki/%E4%B8%87%E7%A7%91%E8%82%A1%E6%9D%83%E4%B9%8B%E4%BA%89";
Map<String,String> header = new HashMap<String, String>();
header.put("aa", "aa_value");
WFAsyncHttpManager.get(
URLString, // 请求地址
header, // 请求头
WFHttpCachePolicy.ReturnCache_ElseLoad, // 缓存策略
new WFHttpResponseHandler() // 回调
{
@Override
public void onSuccessByte(byte[] responseByte, boolean isCache) {
// TODO Auto-generated method stub
super.onSuccessByte(responseByte, isCache);
}
@Override
public void onSuccessJSON(Object responseJSON, boolean isCache) {
// TODO Auto-generated method stub
super.onSuccessJSON(responseJSON, isCache);
}
@Override
public void onFailure(Throwable t) {
// TODO Auto-generated method stub
super.onFailure(t);
}
});
Map<String,String> header = new HashMap<String, String>();
header.put("aa", "aa_value");
WFAsyncHttpManager.get(
URLString, // 请求地址
header, // 请求头
WFHttpCachePolicy.ReturnCache_ElseLoad, // 缓存策略
new WFHttpResponseHandler() // 回调
{
@Override
public void onSuccessByte(byte[] responseByte, boolean isCache) {
// TODO Auto-generated method stub
super.onSuccessByte(responseByte, isCache);
}
@Override
public void onSuccessJSON(Object responseJSON, boolean isCache) {
// TODO Auto-generated method stub
super.onSuccessJSON(responseJSON, isCache);
}
@Override
public void onFailure(Throwable t) {
// TODO Auto-generated method stub
super.onFailure(t);
}
});
2.4 :POST请求
String URLString = "http://192.168.1.12/index.php";
// String URLString = "http://192.168.1.12:8082/api2/login";
Map<String,String> header = new HashMap<String, String>();
header.put("user-agent", "user-agent");
header.put("ok", "version_什么");
Map<String, String> param = new HashMap<String, String>();
param.put("username", "aaaaaaa");
param.put("password", WFHttpTool.MD5("p1"));
param.put("email", "123456@qq.com");
WFAsyncHttpManager.post(URLString, param, header, WFHttpCachePolicy.Default, new WFHttpResponseHandler() {
@Override
public void onSuccessByte(byte[] responseByte, boolean isCache) {
super.onSuccessByte(responseByte, isCache);
}
@Override
public void onSuccessJSON(Object responseJSON, boolean isCache) {
super.onSuccessJSON(responseJSON, isCache);
}
@Override
public void onFailure(Throwable t) {
// TODO Auto-generated method stub
super.onFailure(t);
}
});
// String URLString = "http://192.168.1.12:8082/api2/login";
Map<String,String> header = new HashMap<String, String>();
header.put("user-agent", "user-agent");
header.put("ok", "version_什么");
Map<String, String> param = new HashMap<String, String>();
param.put("username", "aaaaaaa");
param.put("password", WFHttpTool.MD5("p1"));
param.put("email", "123456@qq.com");
WFAsyncHttpManager.post(URLString, param, header, WFHttpCachePolicy.Default, new WFHttpResponseHandler() {
@Override
public void onSuccessByte(byte[] responseByte, boolean isCache) {
super.onSuccessByte(responseByte, isCache);
}
@Override
public void onSuccessJSON(Object responseJSON, boolean isCache) {
super.onSuccessJSON(responseJSON, isCache);
}
@Override
public void onFailure(Throwable t) {
// TODO Auto-generated method stub
super.onFailure(t);
}
});
注:isCache 表示当前数据来源在哪里,是从缓存来的true | 还是从网络来的false
源码 :(http://code.taobao.org/svn/testAsyncHttpClient/)