RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
2016-10-28 09:14
1741 查看
RetrofitUtils
项目地址:hcs-xph/RetrofitUtils简介:RxJava + Retrofit+okhttp 封装,包含对相同格式请求数据、相同格式返回数据处理,显示 Material Design 加载 dialog,文件上传下载进度展示、全局异常捕捉。
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
文件上传下载及其进度显示
相关文章推荐
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- RxJava Retrofit2 网络请求,返回数据格式统一的数据报文处理方法
- RxJava Retrofit2 网络请求,返回数据格式统一的数据报文处理方法
- 在AngularJS中以相同的请求处理上传文件和JSON格式数据
- 使用MVP+Retrofit+RxJava 图片加载使用Fresco 做网络请求并展示数据
- Retrofit+Rxjava 下载文件(带进度显示)
- Rxjava+ReTrofit+okHttp深入浅出-终极封装三(文件上传)
- ASP.NET MVC上传文件成功返回Json格式数据弹出下载框解决方案
- Retrofit2文件上传下载及其进度显示
- RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
- RxJava+Retrofit+OkHttp深入浅出-终极封装四(多文件下载之断点续传)
- MVP和Retrofit+Rxjava+OkHttp封装结合请求数据
- RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
- Retrofit2文件上传下载及其进度显示
- ie8下使用jquery-file-upload上传文件后返回json格式数据提示下载
- 【封装】使用okHttp发送网络请求及上传下载进度监听
- Clide请求图片+OkHttp请求数据+图片上传和下载显示
- RxJava+Retrofit+OkHttp深入浅出-终极封装三(文件上传)
- OKHTTP_三行代码实现文件下载(dialog显示进度)
- 封装了okhttp的网络框架,支持大文件上传下载,上传进度...