天天看点

RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttpRxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp

偶然有幸,看到这个框架,便深深的爱上了这个框架,赶紧转载一发到自己的博客上温故而知新,而且作者一开头,就来了这么一句:
看到这句,我嘴角勾起了一抹微笑,嘿嘿,我也很喜欢Volley呀,而网上二次封装的Volley库,感觉不是那么的尽人意,而自己封装的,也只够自己在项目中使用罢了!我们先来看下他的Github地址:
而我们的这篇博文是参照他的中文文档来的,我纯属搬运工
RxVolley是一个基于Volley的网络请求库;同时支持RxJava;可以选择使用OKHttp替代默认的 HttpUrlConnection 做网络请求;可以选择使用图片加载功能(复用的网络请求将有效减少apk体积);移除了原Volley的 HttpClient 相关 API ,可在 API23 环境编译;内置了RxBus的实现,可有效替换掉EventBus等相关库;
使用RxVolley,需要在你的build.gradle文件中加入
如果你还想使用OKhttp来替代默认的HttpUrlconnection,需要加入
如果你想使用RxVolley的图片加载功能(复用http模块可以有效减少apk大小),需要加入
使用 RxVolley 做网络请求
比起 入门 章节讲述的网络请求,你可能希望有更多的需求
RxVolley 支持返回一个 Observable 类型的数据,如下是 Result 类的原型
执行一次请求,并返回 Observable
完整的使用示例
也许你是 Volley 的重度使用者(就像我),那么你一定是因为 Volley 自由的扩展性而爱上它的。 你可以通过创建一个Request
去执行你的自定义 Request 一个典型自定义Request的示例:
利用 RxVolley 的自定义请求,在库中内置了文件下载功能。你可以使用
download()原型 既然说了下载功能是利用 RxVolley 的自定义请求创建的,不妨看看他的方法实现:
理论上来说,一切的请求设置都可以通过自定义 Request 来完成。 但是,如果你和我一样是个懒人,当然更希望这些早就有人已经做好了。

设置文件缓存的路径

默认的文件缓存路径是在SD卡根目录的 /RxVolley 文件夹下,你可以通过如下语句设置你的 cacheFolder
需要注意的是,setRequestQueue 方法必须在 RxVolley.Build() 方法执行之前调用,也就是在使用 RxVolley 以前先设置配置信息。建议在 Application 类中完成这些设置。

Https设置

如果不设置,默认信任全部的https证书。可以传入自定义 SSLSocketFactory
一个自定义设置SSLSocketFactory的相关示例:

Build()中的可选设置

详细请参阅 RxVolley$Builder 类中代码。
RxVolley 默认对于 cookie 的操作是会从 HttpCallback 中返回 cookie,需要手动保存到本地。 如果你希望框架能够自动存储 cookie,可以这么做: 按需要选择继承FormRequest或者JsonRequest (直接继承 Request 类也可以,但是复杂) 并重写
逻辑如上述代码,其中的map即包含了服务器返回的cookie,可以做你自己的操作了。 最终执行你的自定义 Request
在传递 Cookie 作为请求头的时候,建议写一个工具类,例如
Volley 允许你创建自己的网络请求执行器,执行器需要实现IHttpStack接口 RxVolley 的 okhttp module 已经有了使用 OkHttp 作为请求执行器的实现。 你可以使用如下代码设置,依旧需要注意的是,setRequestQueue 方法必须在 RxVolley.Build() 方法执行之前调用,也就是在使用 RxVolley 以前先设置配置信息。建议在 Application 类中完成这些设置。
使用 OkHttp 相关功能需要在你的 build.gradle 文件中加入

<a href="https://github.com/kymjs/RxVolley/issues">https://github.com/kymjs/RxVolley/issues</a>

使用过程中如果有什么好的建议欢迎反馈给原作者 再次声明哈,我特别喜欢这个框架,在我博客上发布,如果有侵权行为,请告知我删除!