## 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)
没有合适的资源?快使用搜索试试~ 我知道了~
Rxjava+ReTrofit+okHttp终极封装(String方案).zip
共89个文件
java:45个
xml:20个
png:5个
需积分: 5 0 下载量 181 浏览量
2024-01-15
08:57:13
上传
评论
收藏 2.42MB ZIP 举报
温馨提示
方案是为解决特定问题或达成特定目标而制定的一系列计划或步骤。它的作用是提供一种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了一种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了一个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供一种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
资源推荐
资源详情
资源评论
收起资源包目录
Rxjava+ReTrofit+okHttp终极封装(String方案).zip (89个子文件)
SJT-code
gif
rxretrofit.gif 3.05MB
gradle.properties 855B
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 230B
butterniffe读取.html 9KB
app
src
main
java
com
example
retrofit
HttpUploadService.java 564B
MyApplication.java 451B
activity
adapter
DownHolder.java 4KB
DownAdapter.java 624B
CombinApiActivity.java 2KB
DownLaodActivity.java 3KB
MainActivity.java 6KB
entity
resulte
SubjectResulte.java 677B
BaseResultEntity.java 677B
UploadResulte.java 466B
RetrofitEntity.java 660B
api
UploadApi.java 1KB
SubjectPostApi.java 1KB
CombinApi.java 2KB
HttpPostService.java 349B
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_combin_api.xml 1KB
activity_down_laod.xml 876B
activity_main.xml 2KB
view_item_holder.xml 1KB
AndroidManifest.xml 1KB
proguard-rules.pro 689B
build.gradle 848B
.gitignore 7B
LICENSE 1KB
gradlew.bat 2KB
build.gradle 462B
.idea
codeStyles
Project.xml 2KB
runConfigurations.xml 564B
vcs.xml 167B
caches
build_file_checksums.ser 599B
misc.xml 2KB
compiler.xml 284B
modules.xml 554B
gradle.xml 689B
encodings.xml 159B
settings.gradle 37B
gradlew 5KB
rxretrofitlibrary
src
main
java
com
wzgiceman
rxretrofitlibrary
retrofit_rx
Api
HttpManagerApi.java 1KB
BaseApi.java 4KB
utils
DbDwonUtil.java 3KB
CookieDbUtil.java 4KB
AppUtil.java 1KB
subscribers
ProgressSubscriber.java 7KB
ProgressDownSubscriber.java 4KB
http
HttpManager.java 6KB
cookie
CookieResulte.java 1KB
CacheInterceptor.java 2KB
func
ExceptionFunc.java 555B
ResulteFunc.java 541B
exception
HttpTimeException.java 2KB
ApiException.java 825B
RetryWhenNetworkException.java 2KB
FactoryException.java 2KB
CodeException.java 968B
RxRetrofitApp.java 846B
listener
HttpOnNextListener.java 569B
HttpOnNextSubListener.java 332B
HttpDownOnNextListener.java 899B
upload
UploadProgressListener.java 380B
ProgressRequestBody.java 2KB
downlaod
DownState.java 446B
DownInfo.java 4KB
HttpDownManager.java 8KB
HttpDownService.java 557B
DownLoadListener
DownloadResponseBody.java 2KB
DownloadProgressListener.java 338B
DownloadInterceptor.java 751B
res
values
strings.xml 80B
AndroidManifest.xml 300B
proguard-rules.pro 641B
build.gradle 1023B
.gitignore 7B
.gitignore 97B
README.md 4KB
共 89 条
- 1
资源评论
JJJ69
- 粉丝: 6232
- 资源: 5778
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功