“蚁云”,该项目由retrofit2.0+rxjava1.0结合使用封装的网络库。
1.支持添加网络拦截器
2.已经默认设置cookie持久化管理
3.支持设置请求缓存,减少用户流量
4.支持多interface-service
Step 1. Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.themores:AntCloud:v1.0'
}
一般都放在Application onCreate 方法中进行初始化
AntCloud.getInstance().init(context,baseUrl);1.如何定义Service 参考retrofit 官方
public interface ApiService {
@GET("top250")
Observable<HttpResult<List<Subject>>> getTopMovie(@Query("start") int start, @Query("count") int count);
}- 获取Service
ApiService service = AntCloud.getInstance().createService(Service.class);3.发起网络请求,返回一个Observable类型
service.getTopMovie(0,10)4.链接rxjava1.0,call 为抽象方法必须实现,如果你需要对一些error 做特殊处理可以重写error方法
AntCloud.getInstance().getSubcription().addSubscription(service.getTopMovie()
.compose(AntSchedulers.<HttpResult<List<Subject>>>defaultSchedulers())
.subscribe(new AntSubscriber<HttpResult<List<Subject>>>(this, true){
@Override
public void call(HttpResult<List<Subject>> listHttpResult) {
}
}));5.退出activity 或者控制取消订阅。
AntCloud.getInstance().getSubcription().addSubscription(subscription);//添加
AntCloud.getInstance().getSubcription().unSubscribe();//取消,一般在onDestory方法中调用1.AntSchedulers 对rxjava 线程转换做了一次封装。
public class AntSchedulers {
/**
* subscribeOn Schedulers.io()
* <br/>
* observeOn AndroidSchedulers.mainThread()
*
* @param <T>
* @return
*/
public static <T> Observable.Transformer<T, T> defaultSchedulers() {
return new Observable.Transformer<T, T>() {
@Override
public Observable<T> call(Observable<T> tObservable) {
return tObservable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
};
}
}2.AntSubscriber 继承 Subscriber
public AntSubscriber()
public AntSubscriber(Context context)
public AntSubscriber(Context context, boolean mIsOpenToast) //第二个字断用于控制是否弹出toast3.HttpResult 用户自定义的返回结果类 一般为以下风格,自己根据服务器风格进行定义。
public class HttpResult<T> {
private int code ;
private String msg;
private T data;
}4.具体使用情况,请查看源代码中的demo
1.Rxjava 学习 很全的Rxjava教程