diff --git a/README.md b/README.md index 36c66c8f..66aa0432 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # OkGo -### OkHttpUtils2.0升级后改名OKGo, 封装了okhttp的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持cookie自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能 +### OkHttpUtils2.0升级后改名OKGo, 全新完美支持RxJava。该库是封装了okhttp的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持cookie自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能 该项目参考了以下项目: @@ -40,8 +40,8 @@ * 对于Android Studio的用户,可以选择添加: ```java compile 'com.lzy.net:okgo:2.0.0' //可以单独使用,不需要依赖下方的扩展包 - compile 'com.lzy.net:okrx:0.1.0' //RxJava扩展支持 - compile 'com.lzy.net:okserver:1.1.0' //扩展了下载管理和上传管理,根据需要添加 + compile 'com.lzy.net:okrx:0.1.0' //RxJava扩展支持,根据需要添加 + compile 'com.lzy.net:okserver:1.1.0' //下载管理和上传管理扩展,根据需要添加 或者 @@ -53,6 +53,7 @@ * 对于Eclipse的用户,可以选择添加 `/jar` 目录下的: ```java okgo-2.0.0.jar + okrx-0.1.0.jar okserver-1.1.0.jar ``` * 如果是以jar包的形式引入`okserver`,需要在清单文件中额外注册一个服务 @@ -86,7 +87,8 @@ * 支持根据Tag取消请求 * 支持自定义泛型Callback,自动根据泛型返回对象 -## 4.OkRx扩功能,详细使用方法点击这里:[OkRx使用文档](https://github.com/jeasonlzy/OkHttpUtils/blob/master/README_RX.md) +## 4.OkRx扩功能 +#详细使用方法点击这里: [OkRx使用文档](https://github.com/jeasonlzy/OkGO/blob/master/README_RX.md) * 完美结合RxJava * 比Retrofit更简单方便 * 网络请求和RxJava调用,一条链点到底 @@ -182,8 +184,8 @@ callback一共有以下 10 个回调,除`onSuccess`必须实现以外,其余均可以按需实现,每个方法参数详细说明,请看下面第6点: - * parseNetworkResponse():解析网络返回的数据回调 - * parseNetworkFail():解析网络失败的数据回调 + * convertSuccess():解析网络返回的数据回调 + * parseError():解析网络失败的数据回调 * onBefore():网络请求真正执行前回调 * onSuccess():网络请求成功的回调 * onCacheSuccess():缓存读取成功的回调 @@ -195,29 +197,29 @@ callback一共有以下 10 个回调,除`onSuccess`必须实现以外,其余均 ### Callback回调具有如下顺序,虽然顺序写的很复杂,但是理解后,是很简单,并且合情合理的 #### 1).无缓存模式 CacheMode.NO_CACHE -> 网络请求成功 onBefore -> parseNetworkResponse -> onSuccess -> onAfter
-> 网络请求失败 onBefore -> parseNetworkFail -> onError -> onAfter
+> 网络请求成功 onBefore -> convertSuccess -> onSuccess -> onAfter
+> 网络请求失败 onBefore -> parseError -> onError -> onAfter
#### 2).默认缓存模式,遵循304头 CacheMode.DEFAULT -> 网络请求成功,服务端返回非304 onBefore -> parseNetworkResponse -> onSuccess -> onAfter
+> 网络请求成功,服务端返回非304 onBefore -> convertSuccess -> onSuccess -> onAfter
> 网络请求成功服务端返回304 onBefore -> onCacheSuccess -> onAfter
-> 网络请求失败 onBefore -> parseNetworkFail -> onError -> onAfter
+> 网络请求失败 onBefore -> parseError -> onError -> onAfter
#### 3).请求网络失败后读取缓存 CacheMode.REQUEST_FAILED_READ_CACHE -> 网络请求成功,不读取缓存 onBefore -> parseNetworkResponse -> onSuccess -> onAfter
-> 网络请求失败,读取缓存成功 onBefore -> parseNetworkFail -> onError -> onCacheSuccess -> onAfter
-> 网络请求失败,读取缓存失败 onBefore -> parseNetworkFail -> onError -> onCacheError -> onAfter
+> 网络请求成功,不读取缓存 onBefore -> convertSuccess -> onSuccess -> onAfter
+> 网络请求失败,读取缓存成功 onBefore -> parseError -> onError -> onCacheSuccess -> onAfter
+> 网络请求失败,读取缓存失败 onBefore -> parseError -> onError -> onCacheError -> onAfter
#### 4).如果缓存不存在才请求网络,否则使用缓存 CacheMode.IF_NONE_CACHE_REQUEST > 已经有缓存,不请求网络 onBefore -> onCacheSuccess -> onAfter
-> 没有缓存请求网络成功 onBefore -> onCacheError -> parseNetworkResponse -> onSuccess -> onAfter
-> 没有缓存请求网络失败 onBefore -> onCacheError -> parseNetworkFail -> onError -> onAfter
+> 没有缓存请求网络成功 onBefore -> onCacheError -> convertSuccess -> onSuccess -> onAfter
+> 没有缓存请求网络失败 onBefore -> onCacheError -> parseError -> onError -> onAfter
#### 5).先使用缓存,不管是否存在,仍然请求网络 CacheMode.FIRST_CACHE_THEN_REQUEST -> 无缓存时,网络请求成功 onBefore -> onCacheError -> parseNetworkResponse -> onSuccess -> onAfter
-> 无缓存时,网络请求失败 onBefore -> onCacheError -> parseNetworkFail -> onError -> onAfter
-> 有缓存时,网络请求成功 onBefore -> onCacheSuccess -> parseNetworkResponse -> onSuccess -> onAfter
-> 有缓存时,网络请求失败 onBefore -> onCacheSuccess -> parseNetworkFail -> onError -> onAfter
+> 无缓存时,网络请求成功 onBefore -> onCacheError -> convertSuccess -> onSuccess -> onAfter
+> 无缓存时,网络请求失败 onBefore -> onCacheError -> parseError -> onError -> onAfter
+> 有缓存时,网络请求成功 onBefore -> onCacheSuccess -> convertSuccess -> onSuccess -> onAfter
+> 有缓存时,网络请求失败 onBefore -> onCacheSuccess -> parseError -> onError -> onAfter
### 1.基本的网络请求 ```java @@ -353,7 +355,7 @@ OkGo.get(Urls.URL_METHOD) // 请求方式和请求url, get请求不需要拼接 .addCookie(cookie) // 可以自己构建cookie .addCookies(cookies) // 可以一次传递批量的cookie //这里给出的泛型为 ServerModel,同时传递一个泛型的 class对象,即可自动将数据结果转成对象返回 - .execute(new DialogCallback(this, ServerModel.class) { + .execute(new DialogCallback(this) { @Override public void onBefore(BaseRequest request) { // UI线程 请求网络之前调用 @@ -361,7 +363,7 @@ OkGo.get(Urls.URL_METHOD) // 请求方式和请求url, get请求不需要拼接 } @Override - public ServerModel parseNetworkResponse(Response response) throws Exception{ + public ServerModel convertSuccess(Response response) throws Exception{ // 子线程,可以做耗时操作 // 根据传递进来的 response 对象,把数据解析成需要的 ServerModel 类型并返回 // 可以根据自己的需要,抛出异常,在onError中处理 @@ -369,7 +371,7 @@ OkGo.get(Urls.URL_METHOD) // 请求方式和请求url, get请求不需要拼接 } @Override - public void parseNetworkFail(Call call, IOException e) { + public void parseError(Call call, IOException e) { // 子线程,可以做耗时操作 // 用于网络错误时在子线程中执行数据耗时操作,子类可以根据自己的需要重写此方法 } @@ -544,6 +546,10 @@ execute方法不传入callback即为同步的请求,返回`Response`对象, -dontwarn com.lzy.okgo.** -keep class com.lzy.okgo.**{*;} + #okrx + -dontwarn com.lzy.okrx.** + -keep class com.lzy.okrx.**{*;} + #okserver -dontwarn com.lzy.okserver.** -keep class com.lzy.okserver.**{*;} diff --git a/README_RX.md b/README_RX.md index 2a4a7ec0..bc50912d 100644 --- a/README_RX.md +++ b/README_RX.md @@ -16,6 +16,12 @@ * 支持Json数据的自动解析转换 * OkGo包含的所有请求功能,OkRx全部支持 +目前使用的`RxJava`版本如下 +```java + compile 'io.reactivex:rxjava:1.2.0' + compile 'io.reactivex:rxandroid:1.2.1' +``` + ## 一.用法 ### 0.最开始的配置 `OkRx` 是 `OkGo` 的扩展,所以要想使用OkRx,那么请先按照OkGo的配置文档,做相应的初始化。 diff --git a/app/build.gradle b/app/build.gradle index aa3089a1..c9c5ee10 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,9 +76,10 @@ dependencies { compile 'com.lzy.widget:ninegridview:0.2.0' compile 'com.lzy.widget:imagepicker:0.3.2' compile 'com.lzy.widget:view-core:0.2.1' - // compile 'com.lzy.net:okgo:+' - // compile 'com.lzy.net:okserver:+' + // compile 'com.lzy.net:okgo:2.0.0' + // compile 'com.lzy.net:okrx:0.1.0' + // compile 'com.lzy.net:okserver:1.1.0' compile project(':okgo') - compile project(':okserver') compile project(':okrx') + compile project(':okserver') } diff --git a/app/src/main/java/com/lzy/demo/MainActivity.java b/app/src/main/java/com/lzy/demo/MainActivity.java index f2e0e6ed..e92df755 100644 --- a/app/src/main/java/com/lzy/demo/MainActivity.java +++ b/app/src/main/java/com/lzy/demo/MainActivity.java @@ -50,7 +50,7 @@ protected void onCreate(Bundle savedInstanceState) { @OnClick(R.id.fab) public void fab(View view) { - WebActivity.runActivity(this, "我的Github,欢迎star", "https://github.com/jeasonlzy0216"); + WebActivity.runActivity(this, "我的Github,欢迎star", "https://github.com/jeasonlzy"); } private void initData() { diff --git a/jar/okrx-0.1.0.jar b/jar/okrx-0.1.0.jar new file mode 100644 index 00000000..49605d75 Binary files /dev/null and b/jar/okrx-0.1.0.jar differ diff --git a/jar/okserver-1.1.0.jar b/jar/okserver-1.1.0.jar new file mode 100644 index 00000000..44a93e21 Binary files /dev/null and b/jar/okserver-1.1.0.jar differ diff --git a/okgo_v2.0.0.apk b/okgo_v2.0.0.apk index 33404c67..d6f887e7 100644 Binary files a/okgo_v2.0.0.apk and b/okgo_v2.0.0.apk differ diff --git a/okrx/build.gradle b/okrx/build.gradle index 1fae0922..dae8bb5a 100644 --- a/okrx/build.gradle +++ b/okrx/build.gradle @@ -22,5 +22,8 @@ dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'io.reactivex:rxjava:1.2.0' compile 'io.reactivex:rxandroid:1.2.1' +// compile 'com.lzy.net:okgo:2.0.0' compile project(':okgo') } + +//apply from: 'bintray.gradle' diff --git a/okserver/build.gradle b/okserver/build.gradle index fbd2a870..4c3f5380 100644 --- a/okserver/build.gradle +++ b/okserver/build.gradle @@ -7,14 +7,14 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 24 - versionCode 13 - versionName "1.0.3" + versionCode 16 + versionName "1.1.0" } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') -// compile 'com.lzy.net:okhttputils:1.8.1' +// compile 'com.lzy.net:okgo:2.0.0' compile project(':okgo') }