OkGo –
OkHttpUtils-2.0.0
升级后改名
OkGo
,全新完美支持
RxJava
OkHttpUtils-2.0.0
OkGo
RxJava
该库是封装了okhttp的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持cookie自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能
该项目参考了以下项目:
-
https://github.com/hongyangAndroid/okhttp-utils
-
https://github.com/yanzhenjie/NoHttp
-
https://github.com/wyouflf/xUtils
-
https://github.com/square/retrofit
在此特别感谢上述作者,喜欢原作的可以去使用原项目。同时欢迎大家下载体验本项目,如果使用过程中遇到什么问题,欢迎反馈。
联系方式
-
邮箱地址:
liaojeason@126.com
- QQ群: 489873144 (建议使用QQ群,邮箱使用较少,可能看的不及时)
- 本群旨在为使用我的github项目的人提供方便,如果遇到问题欢迎在群里提问。个人能力也有限,希望一起学习一起进步。
演示
1.用法
- 为了方便大家使用,更加通俗的理解http的网络协议,建议做网络请求的时候,对每个请求抓包后查看请求信息和响应信息。
- 如果是 Windows 操作系统,可以使用
Fiddler
对手机的请求进行抓包查看。- 如果是 Mac OS 操作系统,可以使用
Charles
对手机的请求进行抓包查看。- 具体的下载地址和抓包配置方法,我这就不提供了,请自行百度或谷歌。
对于Eclipse不能运行项目的,提供了apk供直接运行
或者点击下载Demo
okgo_v2.0.0.apk
。
本项目Demo的网络请求是我自己的服务器,有时候可能不稳定,网速比较慢时请耐心等待。。
以下是最新版本的版本号,如果你想使用以前的版本,请点击这里,
历史版本
。
- 对于Android Studio的用户,可以选择添加:
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:okgo:+' //版本号使用 + 可以自动引用最新版
compile 'com.lzy.net:okrx:+' //版本号使用 + 可以自动引用最新版
compile 'com.lzy.net:okserver:+' //版本号使用 + 可以自动引用最新版
-
对于Eclipse的用户,可以选择添加
/jar
目录下的:
okgo-2.0.0.jar
okrx-0.1.0.jar
okserver-1.1.0.jar
-
如果是以jar包的形式引入
okserver
,需要在清单文件中额外注册一个服务
<service android:name="com.lzy.okserver.download.DownloadService"/>
-
如果只是用了
okgo
的jar,没有使用
okserver
的jar,那么不需要注册上面的服务
其中的图片选择是我的另一个开源项目,完全仿微信的图片选择库,自带 矩形图片裁剪 和 圆形图片裁剪 功能,有需要的可以去下载使用,附上地址:
https://github.com/jeasonlzy/ImagePicker
其中的九宫格控件也是我的开源项目,类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件,自动根据图片的数量确定图片大小和控件大小,使用Adapter模式设置图片,对外提供接口回调,使用接口加载图片,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,xUtils3,Picasso 等,支持点击图片全屏预览大图。附上地址:
https://github.com/jeasonlzy/NineGridView
2.使用注意事项
-
okgo
使用的
okhttp
的版本是最新的 3.4.1 版本,和以前的 2.x 的版本可能会存在冲突。 -
okrx
是基于
RxJava
和
RxAndroid
的扩展,如果不需要可以不必引入 -
okserver
是对
okgo
的扩展,统一了下载管理和上传管理,对项目有需要做统一下载的可以考虑使用该扩展,不需要的可以直接使用
okgo
即可。 -
对于缓存模式使用,需要与返回对象相关的所有
javaBean
必须实现
Serializable
接口,否者会报
NotSerializableException
。 -
使用缓存时,如果不指定
cacheKey
,默认是用url带参数的全路径名为
cacheKey
。 -
使用该网络框架时,必须要在 Application 中做初始化
OkGo.init(this);
。
3.OkGo 目前支持
- 一般的 get,post,put,delete,head,options请求
- 基于Post的大文本数据上传
- 多文件和多参数统一的表单上传
- 支持一个key上传一个文件,也可以一个Key上传多个文件
- 大文件下载和下载进度回调
- 大文件上传和上传进度回调
- 支持cookie的内存存储和持久化存储,支持传递自定义cookie
- 支持304缓存协议,扩展四种本地缓存模式,并且支持缓存时间控制
- 支持301、302重定向
- 支持链式调用
- 支持可信证书和自签名证书的https的访问,支持双向认证
- 支持根据Tag取消请求
- 支持自定义泛型Callback,自动根据泛型返回对象
4.OkRx 扩展功能
详细使用方法点击这里:
OkRx使用文档
- 完美结合RxJava
- 比Retrofit更简单方便
- 网络请求和RxJava调用,一条链点到底
- 支持Json数据的自动解析转换
- OkGo包含的所有请求功能,OkRx全部支持
版权声明:本文为sky_pjf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。