链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

RxEasyHttp:基于RxJava2和Retrofit2的安卓网络请求框架

RxEasyHttp是一款基于RxJava2 + Retrofit2构建的安卓网络请求框架。它采用api链式调用,集成cookie管理、多种缓存模式、极简https配置、上传下载进度显示等功能。可进行请求错误自动重试、携带动态配置的token、时间戳、签名sign,具有自动登录成...

访问官网 →

【Github】项目名:RxEasyHttp:基于RxJava2和Retrofit2的安卓网络请求框架

项目简介

RxEasyHttp是一款基于RxJava2 + Retrofit2的网络请求框架,专门为安卓平台特性做了网络封装。它采用api链式调用,集成多种功能,如cookie管理、多种缓存模式、极简https配置、上传下载进度显示等,还能进行请求错误自动重试、请求携带动态配置的token、时间戳、签名sign,具有自动登录成功后请求重发功能,参数设置分3种层次(默认、全局、局部),默认标准ApiResult的同时支持自定义数据结构,能满足大部分网络请求需求。

项目目的

网上的开源网络库如Volley、async – http、okhttp、retrofit等虽然强大,但实际应用中往往需要根据业务再封装一层。在使用retrofit请求网络时,随着项目需求和api的增多,存在api管理和维护不便等问题。此库应运而生,旨在提供更简单易用的网络请求方式,例如像懒人一样通过一个URL就能回调所需数据,同时方便处理业务共性的东西,如统一的数据结构、token处理、网络异常等情况。

核心技术

该框架基于RxJava2和Retrofit2构建。RxJava2提供了强大的异步处理能力和线程智能控制,方便处理多个网络请求的组合和顺序等情况。Retrofit2用于定义网络请求的接口,结合RxJava2使得网络请求的处理更加灵活高效。采用链式调用的方式使得代码简洁且易于理解,在链式调用过程中可以轻松配置各种请求参数、处理请求结果和错误等。例如,在网络请求过程中支持多种缓存模式(如NO_CACHE、DEFAULT、FIRSTREMOTE等八种模式),这是通过结合RxJava2和自定义的RxCache来实现的,既可以按照HTTP协议的默认缓存规则(通过OKhttp的Cache缓存),也可以根据业务需求自定义缓存策略。

实践案例

例如在处理安卓应用中的用户登录功能时,可利用此框架进行登录请求。可以轻松设置请求携带token(如果有自动登录和token有效期管理需求),并且在网络不好的情况下,利用请求错误自动重试功能提高登录成功率。在需要获取用户信息等后续请求时,如果自动登录成功,框架的自动登录成功后请求重发功能就能发挥作用。在处理需要缓存数据的页面,如新闻列表页面,可以根据需求设置缓存模式(像CACHEANDREMOTE模式先使用缓存不管是否存在仍然请求网络,CallBack会回调两次,适合新闻列表这种经常更新但也可以先展示缓存数据的场景),还可以设置缓存key来区分不同页面或者不同类型数据的缓存,避免数据覆盖。

项目总结

RxEasyHttp是一个功能丰富、易于使用的安卓网络请求框架。它整合了RxJava2和Retrofit2的优势,并针对安卓平台特性做了很多实用的封装。无论是从处理网络请求的基本功能,还是应对复杂业务场景下的特殊需求,都表现出色。希望大家能积极尝试使用这个框架,如果有任何问题或者建议,欢迎在评论区留言讨论。

项目地址

GitHub链接直达