OkHttpUtils | okhttp-OkGo的使用,完美支持RxJava

  • Post author:
  • Post category:java



github欢迎fork,star


image

OkGo –

OkHttpUtils-2.0.0

升级后改名

OkGo

,全新完美支持

RxJava



该库是封装了okhttp的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持cookie自动管理,支持四种缓存模式缓存网络数据,支持301、302重定向,扩展了统一的上传管理和下载管理功能

该项目参考了以下项目:

在此特别感谢上述作者,喜欢原作的可以去使用原项目。同时欢迎大家下载体验本项目,如果使用过程中遇到什么问题,欢迎反馈。

联系方式

  • 邮箱地址:

    liaojeason@126.com
  • QQ群: 489873144 (建议使用QQ群,邮箱使用较少,可能看的不及时)
  • 本群旨在为使用我的github项目的人提供方便,如果遇到问题欢迎在群里提问。个人能力也有限,希望一起学习一起进步。

演示


image


image


image


image


image


image



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 版权协议,转载请附上原文出处链接和本声明。