# Retrofit+Rxjava+okhttp封装
![Preview](https://github.com/wzgiceman/RxjavaRetrofitDemo-string-master/blob/master/gif/rxretrofit.gif)
1.Retrofit+Rxjava+okhttp基本使用方法
2.统一处理请求数据格式
3.统一的ProgressDialog和回调Subscriber处理
4.取消http请求
5.预处理http请求
6.返回数据的统一判断
7.失败后的retry处理
8.RxLifecycle管理生命周期,防止泄露
9.文件上传下载(支持多文件,断点续传)
10.Cache数据持久化和数据库(greenDao)两种缓存机制
## 依赖工程
* 1.moudel导入工程
```java
compile project(':rxretrofitlibrary')
```
* 2.初始化设置:Application中初始化
```java
RxRetrofitApp.init(this);
```
## 代码使用
更多用法请参考demo
```java
// 完美封装简化版
private void simpleDo() {
SubjectPost postEntity = new SubjectPost(simpleOnNextListener,this);
postEntity.setAll(true);
HttpManager manager = HttpManager.getInstance();
manager.doHttpDeal(postEntity);
}
// 回调一一对应
HttpOnNextListener simpleOnNextListener = new HttpOnNextListener<List<Subject>>() {
@Override
public void onNext(List<Subject> subjects) {
tvMsg.setText("已封装:\n" + subjects.toString());
}
/*用户主动调用,默认是不需要覆写该方法*/
@Override
public void onError(Throwable e) {
super.onError(e);
tvMsg.setText("失败:\n" + e.toString());
}
}
```
* 初始化一个请求数据的对象继承BaseEntity对象,传递一个sub回调对象和context对象,设置请求需要的参数
* 通过单利获取一个httpmanger对象,触发请求
* 结果统一通过BaseEntity中的fun1方法判断,最后返回传递的sub对象中
## 变种-推荐使用
在之前的封装1-5中我们都是通过传统的GsonConverterFactory自动解析,这样做确实很方便,用户能直接获取返回的对象,不用关心具体的转换,但是:这随之而来有很多的缺陷(虽然官网推荐这样使用);
比如:无法使用其他第三发转换框架;泛型无法中间传递,封装无法统一处理缓存结果;回调信息无法统一处理..........
所以我们在享受它遍历的同时也被迫的要限制做很多的处理,限制我们的扩展!
介绍如何放弃GsonConverterFactory,直接返回String,扩展我们的封装!(封装的整体思想和之前的封装一样,所以不会有大的改动!)
>[Rxjava+ReTrofit+okHttp深入浅出-终极封装变种](https://github.com/wzgiceman/RxjavaRetrofitDemo-string-master)
>[Rxjava+ReTrofit+okHttp极简方式使用-无需任何学习成本](https://github.com/wzgiceman/Rx-Retrofit)
## 思路
详细思路可以可以参看我的博客:
[Rxjava+ReTrofit+okHttp深入浅出-终极封装](http://blog.csdn.net/column/details/13297.html)
## 问题反馈列表集合
[问题反馈列表集合-汇总解决](https://github.com/wzgiceman/RxjavaRetrofitDemo-master/blob/master/README_ep.md)
## QQ交流群
![](https://github.com/wzgiceman/Rxbus/blob/master/gif/qq.png)
没有合适的资源?快使用搜索试试~ 我知道了~
Retrofit+Rxjava+okhttp终极封装(Gson方案).zip
共81个文件
java:37个
xml:16个
png:7个
需积分: 5 0 下载量 13 浏览量
2024-01-15
08:57:13
上传
评论
收藏 3.22MB ZIP 举报
温馨提示
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
资源推荐
资源详情
资源评论
收起资源包目录
Retrofit+Rxjava+okhttp终极封装(Gson方案).zip (81个子文件)
SJT-code
gif
wxq.png 53KB
upload.gif 1.32MB
git_history .png 56KB
mu_down.gif 1.64MB
down.gif 1.84MB
http.gif 515KB
gradle.properties 855B
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 230B
app
src
main
java
com
example
retrofit
HttpUploadService.java 746B
MyApplication.java 451B
activity
adapter
DownHolder.java 4KB
DownAdapter.java 625B
DownLaodActivity.java 2KB
MainActivity.java 10KB
entity
resulte
SubjectResulte.java 677B
UploadResulte.java 466B
RetrofitEntity.java 660B
api
UploadApi.java 1KB
SubjectPostApi.java 2KB
HttpPostService.java 908B
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
values-w820dp
dimens.xml 358B
values
dimens.xml 211B
colors.xml 208B
strings.xml 81B
styles.xml 383B
layout
activity_down_laod.xml 876B
activity_main.xml 2KB
view_item_holder.xml 1KB
AndroidManifest.xml 1KB
proguard-rules.pro 689B
build.gradle 828B
.gitignore 7B
LICENSE 1KB
gradlew.bat 2KB
build.gradle 462B
.idea
codeStyles
Project.xml 2KB
runConfigurations.xml 564B
vcs.xml 167B
modules.xml 540B
gradle.xml 689B
settings.gradle 37B
gradlew 5KB
rxretrofitlibrary
src
main
java
com
wzgiceman
rxretrofitlibrary
retrofit_rx
Api
BaseResultEntity.java 689B
BaseApi.java 5KB
utils
CookieDbUtil.java 4KB
AppUtil.java 1KB
DbDownUtil.java 3KB
subscribers
ProgressSubscriber.java 7KB
ProgressDownSubscriber.java 4KB
http
HttpManager.java 4KB
cookie
CookieInterceptor.java 2KB
CookieResulte.java 1KB
CacheInterceptor.java 2KB
exception
HttpTimeException.java 861B
RetryWhenNetworkException.java 2KB
RxRetrofitApp.java 845B
listener
HttpOnNextListener.java 780B
HttpDownOnNextListener.java 899B
upload
UploadProgressListener.java 345B
ProgressRequestBody.java 2KB
download
DownState.java 446B
DownInfo.java 4KB
HttpDownManager.java 8KB
HttpDownService.java 563B
DownLoadListener
DownloadResponseBody.java 2KB
DownloadProgressListener.java 338B
DownloadInterceptor.java 751B
res
values
strings.xml 80B
AndroidManifest.xml 300B
proguard-rules.pro 641B
build.gradle 938B
.gitignore 7B
.gitignore 97B
README.md 3KB
README_ep.md 3KB
共 81 条
- 1
资源评论
JJJ69
- 粉丝: 6169
- 资源: 5789
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功