RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
来源:互联网 发布:app源码下载论坛 编辑:程序博客网 时间:2024/06/06 10:48
RetrofitUtils
RxJava + Retrofit 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
Preview
演示中 upload.png 为上传图片源文件。
Describe
实现功能:
1、对于相同格式请求数据统一处理;
2、对于相同返回结果进行预处理;
3、显示加载 dialog;
4、支持文件带进度上传下载。
主要几个类作用:
1、RetrofitUtils.java 主要是数据 post、get 等请求工具类,所有请求调用 doHttp()方法。
2、RetrofitFileUtils.java 主要用于文件下载工具类,包含 uploadFile()文件上传、downloadFile()文件下载两个方法。
3、BaseFileDownload.java 文件下载请求基类,文件下载请求实体类需继承该类实现内部方法。
4、BaseFileUpload.java 文件上传请求基类,文件上传请求实体类需继承该类实现内部方法。
5、HttpResultFunc.java 基本数据请求基类,数据请求实体类需继承该类实现内部方法。
6、RetrofitService.java 主要用于管理请求接口,设置请求地址等。如需修改类名请在调用地方相应进行修改。
Usage
使用方法,这里主要以 post 请求为例;
1、在 RetrofitService.java 中配置请求地址:
@FormUrlEncoded @POST("diseaseDBapi/getDisease") Observable<ResponseResult<DiseaseDetail>> getDiseaseDetail(@Field("diseaseId") int id);
2、定义一个类继承 HttpResultFunc.java
public class DiseaseDetailPost extends HttpResultFunc { private Subscriber subscriber;//带加载进度的 Subscriber private int id;//请求参数,如有更多请求字段相应添加即可 public DiseaseDetailPost(Subscriber subscriber, int id) { this.subscriber = subscriber; this.id = id; } @Override public Observable getObservable(RetrofitService retrofitService) { return retrofitService.getDiseaseDetail(id);//调用请求方法 } @Override public Subscriber getSubscriber() { return subscriber; }}
3、现在就可以进行调用了。
RetrofitUtils.getInstance().doHttp(new DiseaseDetailPost(new ProgressSubscriber<DiseaseDetail>(MainActivity.this) { @Override public void onNext(DiseaseDetail diseaseDetail) { mResultTextView.setText(diseaseDetail.toString()); } },7937));
这里就演示这个例子了,更多使用方法可以直接看 demo。
最后非常感谢RxJava 与 Retrofit 结合的最佳实践和Retrofit2 文件上传下载及其进度显示
- RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
- MVP和Retrofit+Rxjava+OkHttp封装结合请求数据
- 封装Retrofit + okhttp + rxjava网络请求框架
- 封装RxJava+Retrofit+OkHttp
- MVP+Rxjava+Okhttp+Retrofit+XRecyclerview请求数据
- 在AngularJS中以相同的请求处理上传文件和JSON格式数据
- Retrofit+Rxjava 下载文件(带进度显示)
- 【封装】使用okHttp发送网络请求及上传下载进度监听
- RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- RxJava+Retrofit+OkHttp深入浅出-终极封装二(网络请求)
- retrofit+RxJava+okhttp简便封装实现网络请求(详解)
- Retrofit和RxJava加OkHttp网络请求进行二次封装
- Retrofit+RxJava+Okhttp+RecycleView+MVP简单的展示数据
- RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)
- RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)
- RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)
- 工作web记录2016-11
- POJ 2586 - 贪心 or DP
- 在开发板上生成一个带logo的二维码 -(三)
- Winfrom 使用WCF 实现双工通讯
- 【容器化思维】容器化技术和容器管理平台
- RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
- 安卓高级8 支付宝支付
- ubuntu下开启mysql远程链接
- iOS 10 应用内跳转到系统设置
- 【OpenWRT之旅】LuCI探究
- service call使用
- 安卓高级9 shareSDK 第三方登陆和分享Mob
- Google 系应用设计相同、支持拉伸、修正原生实现诸多问题的星级评分条。可直接替换 RatingBar。
- iOS 代码解耦利器(一)