您当前的位置: 首页 >  Java

RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。

发布时间:2016-10-28 09:14:31 ,浏览量:0

RetrofitUtils
项目地址: hcs-xph/RetrofitUtils
简介:RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。

RxJava + Retrofit 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。

Preview

image 演示中 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")
    ObservablegetDiseaseDetail(@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(MainActivity.this) {
                    @Override
                    public void onNext(DiseaseDetail diseaseDetail) {
                        mResultTextView.setText(diseaseDetail.toString());
                    }
                },7937));

这里就演示这个例子了,更多使用方法可以直接看 demo。  最后非常感谢RxJava 与 Retrofit 结合的最佳实践和Retrofit2 文件上传下载及其进度显示

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    111043博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0762s