RxJava及Retrofit封装 – RetrofitUtils

weixin_38089851 2019-09-12 12:58:57
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));
...全文
25 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧