Skip to content

themores/AntCloud

Repository files navigation

AntCloud

“蚁云”,该项目由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);
}
  1. 获取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())
.subscribenew 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) //第二个字断用于控制是否弹出toast

3.HttpResult 用户自定义的返回结果类 一般为以下风格,自己根据服务器风格进行定义。

public class HttpResult<T> {
	private int code ;
	private String msg;
	private T data;
}

4.具体使用情况,请查看源代码中的demo

参考资料

1.Rxjava 学习 很全的Rxjava教程

交流加群284430347

About

Retrofit2.0+RxJava1.0 网络库

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages