当前位置:网站首页 > 技术博客 > 正文

okgot it



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


 
 

一般在Aplication,或者基类中配置,只需要调用一次即可

  • 可以配置log开关
  • 全局的超时时间
  • 全局cookie管理策略
  • Https配置
  • 超时重连次数
  • 公共的请求头和请求参数等信息

注意:不要忘记了在清单文件中注册 Application

 

最简单的如果上面的配置OkHttpClient不想写,就用okgo中默认的,一行代码就可以完成。

 
 
  • NO_CACHE:不使用缓存,该模式下cacheKey、cacheTime 参数均无效
  • DEFAULT:按照HTTP协议的默认缓存规则,例如有304响应头时缓存。
  • REQUEST_FAILED_READ_CACHE:先请求网络,如果请求网络失败,则读取缓存,如果读取缓存失败,本次请求失败。
  • IF_NONE_CACHE_REQUEST:如果缓存不存在才请求网络,否则使用缓存。
  • FIRST_CACHE_THEN_REQUEST:先使用缓存,不管是否存在,仍然请求网络。

使用缓存的场景比如:下拉刷新(上拉刷新不需要)CacheMode设置为 IF_NONE_CACHE_REQUEST,效果就是当用户网络没有的时候不至于出现白板的现象。

注意点:
缓存的对象bean必须实现Serializable接口,否者会报NotSerializableException。因为缓存的原理是将对象序列化后直接写入数据库中,如果不实现Serializable接口,会导致对象无法序列化,进而无法写入到数据库中,也就达不到缓存的效果。

 

上拉加载:

 
 

FileCallback具有三个重载的构造方法,分别是

  • FileCallback():空参构造
  • FileCallback(String destFileName):可以额外指定文件下载完成后的文件名
  • FileCallback(String destFileDir, String destFileName):可以额外指定文件的下载目录和下载完成后的文件名

注意:

文件目录如果不指定,默认下载的目录为 sdcard/download/,文件名如果不指定,则按照以下规则命名:
1.首先检查用户是否传入了文件名,如果传入,将以用户传入的文件名命名
2.如果没有传入,那么将会检查服务端返回的响应头是否含有Content-Disposition=attachment;filename=FileName.txt该种形式的响应头,如果有,则按照该响应头中指定的文件名命名文件,如FileName.txt
3.如果上述响应头不存在,则检查下载的文件url,例如:http://image.baidu.com/abc.jpg,那么将会自动以abc.jpg命名文件
4.如果url也把文件名解析不出来,那么最终将以"unknownfile_" + System.currentTimeMillis()命名文件

 
 
 
 

每个请求前都设置了一个参数tag,取消则通过OkGo.cancel(tag)执行。 例如:在Activity中,当Activity销毁取消请求,可以在onDestory里面统一取消;


                            

版权声明


相关文章:

  • sql数据库游标的使用步骤2025-05-17 22:30:03
  • linux桌面系统哪个好2025-05-17 22:30:03
  • halcon霍夫变换直线检测原理2025-05-17 22:30:03
  • linux cp指令2025-05-17 22:30:03
  • 处理器性能测试2025-05-17 22:30:03
  • oracle数据库expdp命令2025-05-17 22:30:03
  • hashset并集2025-05-17 22:30:03
  • 开窗函数详解2025-05-17 22:30:03
  • java什么是代理模式2025-05-17 22:30:03
  • c++右移运算符2025-05-17 22:30:03