-
Notifications
You must be signed in to change notification settings - Fork 225
XHttp网络请求隔离框架
王兴春 edited this page Jun 12, 2017
·
4 revisions
在Android开发过程中,我们都发现了http网络请求类的框架,更新的非常快!但是很多人封装的不是很好,一旦想更换其他框架,你就需要修改很多重复代码,所以有了这个需求,我封装了这个XHttp隔离框架,其实不是很难,灵感来自于代理设计模式。
- 1:低耦合,轻量级,使用简单。
- 2:可配置,一行代码就能随意切换。
- 3:可自动解析json,你也可以随意采用json解析框架。
- 4:可以自定义Http引擎实现类,可以随意扩展功能。
自定义引擎案例: AsyncHttpEngine OKHttpEngine VolleyHttpEngine
public class App extends XApplication {
@Override
public void onCreate() {
super.onCreate();
/**
初始化网络请求的引擎,在这里可以一行代码切换,避免更换网络框架麻烦的问题
提供三种常见框架的简单案例:(你也可以按照例子自己实现)
AsyncHttpEngine、OKHttpEngine、VolleyHttpEngine
*/
XFrame.initXHttp(new AsyncHttpEngine());
}
}
/**
* 调用 网络请求 get方法
* @param url 请求url
* @param params 参数,没有可以传一个空集合 or null
* @param HttpCallBack<T> 回调接口,T 为你想返回的类型(String or entity)
* 传入String 返回类型就是String
* 传入你的实体类,就会自动解析为你的实体类(这个代码需要在Http引擎中实现)
*/
XHttp.obtain().get(url, params , new HttpCallBack<String>() {
@Override
public void onSuccess(String result) {
}
@Override
public void onFailed(String error) {
}
});
//实现IHttpEngine 后,你可以在里面尽情发挥,亦可以参照上面初始化时提供的几种例子进行实现
public class CustomHttpEngine implements IHttpEngine {
@Override
public void get(String url, Map<String, Object> params, HttpCallBack callBack) {
//在这里调用第三方库的get请求方法,同时亦可以进行返回结果解析,完全独立出来,不用担心以前的耦合问题了
}
@Override
public void post(String url, Map<String, Object> params, HttpCallBack callBack) {
}
}
//获取类型,我们在进行json解析时,并不知道是什么类型,那么通过这个方法获取吧!
Class<?> cls= XHttp.analysisClassInfo(callBack);
从小的功能做起,只做必要的封装,让开发更加简单 ———— XFrame