RxJava与Retrofit项目实践

最近开始一个新的项目,因为前段时间了解了retrofit和rxjava框架,打算采用他们打造网络请求的框架。框架搭建后包括基本网络请求,用户token失效,刷新token,再完成请求和数据的缓存,以及异常处理。

Retrofit

Retrofit中真正的请求是Okhttp完成的,Retrofit充当了一个适配器(Adapter)的角色:将一个Java接口翻译成一个Http请求,然后用OkHttp去发送这个请求。

首先构造retrofit,几个核心的参数呢,主要就是baseurl,callFactory(mookhttpclient),converterFactories,adapterFactories,excallbackExecutor。

然后通过create方法拿到接口的实现类,这里利用Java的Proxy类完成动态代理的相关代理
在invoke方法内部,拿到我们所声明的注解以及实参等,构造ServiceMethod,ServiceMethod中解析了大量的信息,

最后可以通过toRequest构造出okhttp3.Request对象。有了okhttp3.Request对象就可以很自然的构建出okhttp3.call,最后calladapter对Call进行装饰返回。
拿到Call就可以执行enqueue或者execute方法了

RxJava

RxJava 是一个响应式编程框架,采用观察者设计模式。
官方的介绍
1.支持Java6+
2.android 2.3+
3.异步的
4.基于观察者设计模式(Observer、Observable)
5.Subscribe (订阅)

推荐个不错的学习链接
给 Android 开发者的 RxJava 详解

......

你可能感兴趣的:(RxJava与Retrofit项目实践)