自己封装的android客户端http网络框架
2013-07-08 15:45
453 查看
整个框架是基于阿帕奇的httpclient搭建的,框架类图如下,我是用Astah Professional画出来,将项目导入,自动生成所有类关系图,还是挺方便的;
核心类是HttpManager和HttpAsyncTakeManager,前者基于threa实现,后者基于asyncTask实现,封装了get和post请求,只需要实例化,并且调用request方法即可;
[java] view plaincopyprint?
HttpAsyncTaskManager http=new HttpAsyncTaskManager(this);
String url = "http://www.12306.cn/mormhweb/kyfw/ypcx/";
http.request(url, new StringTaskHandler() {
@Override
public void onNetError() {
// TODO Auto-generated method stub
System.out.println("---------neterror---------");
}
@Override
public void onSuccess(String result) {
// TODO Auto-generated method stub
System.out.println("#####" + result);
}
@Override
public void onFail() {
// TODO Auto-generated method stub
System.out.println("---------onFail---------");
}
});
TaskHandler<T>是一个抽象泛型类,有四个子类,StringTaskHandler,InputStreamTaskHandler,JsonObjectHandler,JsonArrayHandler,分别可以处理xml流,字符串,json对象;还可以自定义扩展TaskHandler,实现自己的逻辑
[java] view plaincopyprint?
public abstract class TaskHandler<T> {
/** network is break */
public abstract void onNetError();
/**
* have a successful response
*
* @param result
*/
public abstract void onSuccess(T result);
/** if the timeout,server error */
public abstract void onFail();
/**
* parse the InputStream,must be override this
*
* @param result
*/
public abstract T parseResult(InputStream result);
}
核心类是HttpManager和HttpAsyncTakeManager,前者基于threa实现,后者基于asyncTask实现,封装了get和post请求,只需要实例化,并且调用request方法即可;
[java] view plaincopyprint?
HttpAsyncTaskManager http=new HttpAsyncTaskManager(this);
String url = "http://www.12306.cn/mormhweb/kyfw/ypcx/";
http.request(url, new StringTaskHandler() {
@Override
public void onNetError() {
// TODO Auto-generated method stub
System.out.println("---------neterror---------");
}
@Override
public void onSuccess(String result) {
// TODO Auto-generated method stub
System.out.println("#####" + result);
}
@Override
public void onFail() {
// TODO Auto-generated method stub
System.out.println("---------onFail---------");
}
});
TaskHandler<T>是一个抽象泛型类,有四个子类,StringTaskHandler,InputStreamTaskHandler,JsonObjectHandler,JsonArrayHandler,分别可以处理xml流,字符串,json对象;还可以自定义扩展TaskHandler,实现自己的逻辑
[java] view plaincopyprint?
public abstract class TaskHandler<T> {
/** network is break */
public abstract void onNetError();
/**
* have a successful response
*
* @param result
*/
public abstract void onSuccess(T result);
/** if the timeout,server error */
public abstract void onFail();
/**
* parse the InputStream,must be override this
*
* @param result
*/
public abstract T parseResult(InputStream result);
}
一句代码就搞定,请求,有木有很方便呢,整个项目我已经放在github上面了https://github.com/allen1988/android_http_framework
相关文章推荐
- 自己封装的android客户端http网络框架
- Android网络框架之----OKHttp简单二次封装
- Android基于http封装的网络请求框架
- Android 网络访问框架retrofit2,okhttp3之简单封装,kotlin源码
- Android网络请求框架AsyncHttp二次封装
- Android----------OkHttp网络请求框架Get和Post简单封装(泛型)
- 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(一)
- 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(二)
- 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(二)
- 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(一)
- 使用android-async-http来封装Android网络请求框架
- android http——网络请求二次封装的框架设计
- android http——网络请求二次封装的框架设计
- 浅谈Android网络封装框架Retrofit
- Android网络框架学习之HttpClient
- 聊聊HTTP gzip压缩与常见的Android网络框架
- Android Asynchronous Http Client-Android异步网络请求客户端接口
- android网络框架volley学习之HttpStack接口
- android 网络框架解析--OKHttp
- 自己动手写一个轻量级的Android网络请求框架