## Rxjava+ReTrofit+okHttp深入浅出-终极封装特殊篇(替换Gson返回)
## 介绍
封装原理博客专栏:
>[Rxjava+ReTrofit+okHttp深入浅出-终极封装](http://blog.csdn.net/column/details/13297.html)
介绍如何放弃GsonConverterFactory,直接返回String,灵活我们的封装!
>[兄弟版本-Rxjava+ReTrofit+okHttp深入浅出-终极封装Gson方案](https://github.com/wzgiceman/RxjavaRetrofitDemo-master)
## 具备功能
1.Retrofit+Rxjava+okhttp基本使用方法
2.统一处理请求数据格式
3.统一的ProgressDialog和回调Subscriber处理
4.取消http请求
5.预处理http请求
6.返回数据的统一判断
7.失败后的retry处理
8.RxLifecycle管理生命周期,防止泄露
9.文件上传下载(支持多文件,断点续传)
10.Cache数据持久化和数据库(greenDao)两种缓存机制
11.异常统一处理
## 效果
![Preview](https://github.com/wzgiceman/RxjavaRetrofitDemo-string-master/blob/master/gif/rxretrofit.gif)
## 使用
### 1.初始化
moudel导入工程
```java
compile project(':rxretrofitlibrary')
```
在Application中初始化RxRetrofitApp
```java
RxRetrofitApp.init(this);
```
### 2.初始化HttpManager
需要传递一个回调HttpOnNextListener接口和activity生命周期
```java
HttpManager manager=new HttpManager(this,this);
```
### 3.初始请求的数据和参数
```java
public class SubjectPostApi extends BaseApi {
// 接口需要传入的参数 可自定义不同类型
private boolean all;
/*任何你先要传递的参数*/
// String xxxxx;
/**
* 默认初始化需要给定回调和rx周期类
* 可以额外设置请求设置加载框显示,回调等(可扩展)
*/
public SubjectPostApi() {
setShowProgress(true);
setCancel(true);
setCache(true);
setMothed("AppFiftyToneGraph/videoLink");
setCookieNetWorkTime(60);
setCookieNoNetWorkTime(24*60*60);
}
/**
*通过自定义sercie得到Observable对象
*sercie可动态设置,方便扩展
*/
@Override
public Observable getObservable(Retrofit retrofit) {
HttpPostService httpService = retrofit.create(HttpPostService.class);
return httpService.getAllVedioBy(isAll());
}
}
```
### 4.请求后的统一处理
通过method参数判断接口,然后动态解析返回的数据
```java
@Override
public void onNext(String resulte, String method) {
/*post返回处理*/
if(method.equals(postEntity.getMothed())){
List<SubjectResulte> subjectResulte= JSONObject.parseArray(resulte,SubjectResulte.class);
tvMsg.setText("post返回:\n"+subjectResulte.toString() );
}
/*上传返回处理*/
if(method.equals(uplaodApi.getMothed())){
UploadResulte uploadResulte=JSONObject.parseObject(resulte,UploadResulte.class);
tvMsg.setText("上传成功返回:\n"+uploadResulte.getHeadImgUrl());
Glide.with(MainActivity.this).load(uploadResulte.getHeadImgUrl()).skipMemoryCache(true).into(img);
}
}
@Override
public void onError(Throwable e) {
tvMsg.setText("失败:\n" + e.toString());
}
```
* 初始化一个请求数据的对象继承BaseApi对象设置请求需要的参数
* 通过httpmanger对象,触发请求
* 结果统一通过BaseApi中的fun1方法判断,最后返回HttpOnNextListener
## 优化迭代
根据反馈及时更新和优化的过程,如果在使用过程中有任何问题,欢迎反馈给我!
## 思路
详细思路可以可以参看我的博客:
[Rxjava+ReTrofit+okHttp深入浅出-终极封装](http://blog.csdn.net/column/details/13297.html)
## QQ交流群
![](https://github.com/wzgiceman/Rxbus/blob/master/gif/qq.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.Retrofit+Rxjava+okhttp基本使用方法 2.统一处理请求数据格式 3.统一的ProgressDialog和回调Subscriber处理 4.取消http请求 5.预处理http请求 6.返回数据的统一判断 7.失败后的retry封装处理 8.RxLifecycle管理生命周期,防止泄露 注:本文为转载内容,如需查看源码请移步http://blog.csdn.net/wzgiceman/article/details/51939574。
资源推荐
资源详情
资源评论
收起资源包目录
RxjavaRetrofitDemo-string-master-master.zip (82个子文件)
RxjavaRetrofitDemo-string-master-master
gradlew.bat 2KB
gradlew 5KB
rxretrofitlibrary
proguard-rules.pro 641B
src
main
res
values
strings.xml 80B
java
com
wzgiceman
rxretrofitlibrary
retrofit_rx
exception
RetryWhenNetworkException.java 2KB
ApiException.java 893B
HttpTimeException.java 1KB
CodeException.java 968B
FactoryException.java 2KB
downlaod
DownInfo.java 4KB
HttpDownService.java 557B
HttpDownManager.java 6KB
DownLoadListener
DownloadResponseBody.java 2KB
DownloadProgressListener.java 338B
DownloadInterceptor.java 751B
DownState.java 446B
RxRetrofitApp.java 846B
http
func
ResulteFunc.java 497B
ExceptionFunc.java 472B
HttpManager.java 5KB
cookie
CacheInterceptor.java 2KB
CookieResulte.java 1KB
Api
BaseApi.java 3KB
subscribers
ProgressDownSubscriber.java 4KB
ProgressSubscriber.java 8KB
utils
DbDwonUtil.java 4KB
CookieDbUtil.java 4KB
AppUtil.java 3KB
listener
upload
ProgressRequestBody.java 3KB
UploadProgressListener.java 345B
HttpOnNextListener.java 518B
HttpOnNextSubListener.java 332B
HttpDownOnNextListener.java 899B
AndroidManifest.xml 300B
.gitignore 7B
build.gradle 1022B
gradle.properties 855B
gif
rxretrofit.gif 3.05MB
LICENSE 1KB
app
proguard-rules.pro 689B
src
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 208B
strings.xml 81B
styles.xml 383B
dimens.xml 211B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
activity_down_laod.xml 876B
view_item_holder.xml 1KB
activity_main.xml 1KB
values-w820dp
dimens.xml 358B
java
com
example
retrofit
HttpPostService.java 349B
HttpUploadService.java 564B
activity
DownLaodActivity.java 2KB
MainActivity.java 5KB
adapter
DownAdapter.java 624B
DownHolder.java 4KB
MyApplication.java 451B
entity
api
UploadApi.java 1KB
SubjectPostApi.java 1KB
resulte
SubjectResulte.java 677B
RetrofitEntity.java 660B
BaseResultEntity.java 677B
UploadResulte.java 466B
AndroidManifest.xml 1KB
.gitignore 7B
build.gradle 794B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 281B
.idea
gradle.xml 689B
runConfigurations.xml 564B
misc.xml 3KB
vcs.xml 167B
copyright
profiles_settings.xml 74B
modules.xml 554B
compiler.xml 841B
.gitignore 97B
README.md 4KB
settings.gradle 37B
build.gradle 428B
共 82 条
- 1
资源评论
qq_huatian
- 粉丝: 26
- 资源: 56
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2001~2022年上市公司数字赋能指数.dta
- 2001~2022年上市公司数字赋能指数.xlsx
- 信息办公石大在线财务管理系统(含源码)-shidacaiwu.rar
- 信息办公电信计费系统完整代码-netctossconformity.rar
- matlab实现TD-SCDMA中初始同步捕捉DwPTS下行同步导频时隙的仿真.zip
- 信息办公玉玺学生信息管理系统-webapps.rar
- 信息办公基于struts的图书管理系统-struts-ts.rar
- 管家婆分销ERP V1 V3 A8II TOP V10.0.2最新全版本通用
- 信息办公基于Ajax+J2EE的MicroERP源码下载-microerp-0.1.rar
- 信息办公双鱼林jsp人事工资系统-wagesmanagesystem.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功