博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义网络请求框架
阅读量:6987 次
发布时间:2019-06-27

本文共 1002 字,大约阅读时间需要 3 分钟。

该网络请求框架是基于okhttp封装的项目。支持设置请求配置。

  • okhttp的Cache类支持配置缓存的大小于位置。
  • okhttp支持设置链接超时,读取超时,写入超时。
  • okhttp支持设置cookie。
  • okhttp支持设置请求拦截器,我们通过自定义重试拦截器设置请求失败重试。根据请求返回的响应体的状态和重试次数,决定是否重试。
  • okhttp支持设置请求拦截器,我们通过自定义日志拦截器实现请求日志的打印。包括请求方法,请求地址,请求协议,请求体长度,请求头信息,请求体信息。响应码,响应信息,响应地址,响应时间,响应头,响应体信息。
  • 将网速变化情况根据每秒传输的字节数进行监听,从而判断网络状况。通过系统提供的TrafficStats类进行判断,它能够获取手机开机之后接手的网络字节数。在请求前和请求后进行相减即可得到此次的请求字节。进而判断网络好坏。如果不支持,则获取本地请求的响应体的字节数。
  • okhttp支持网络拦截器。
  • okhttp支持CallAdapter。添加调用适配器工厂以支持除Call之外的服务方法返回类型。
  • okhttp支持Converter。添加转换器工厂以进行对象的序列化和反序列化。
  • okhttp支持Call。指定用于创建Call实例的自定义call工厂。

提供一个门面类让客户端进行设置。

  • 通过传入不同的服务器地址,返回不同的Retrofit实例。
  • 提供了REST API,包含上传和下载文件的接口给客户端。并提供回调。

门面类持有真正进行网络请求的管理类。

  • 通过单例模式进行网络请求。管理类内部通过Retrofit使用自定义的okhttp进行网络请求。Retrofit的服务接口里面实现了REST API和上传,下载的接口定义。需要传入服务器地址和对应参数。
  • 所有的请求对象都是异步调用,并在请求的开始,获得响应,结束的地方设置传入的自定义回调函数。
  • 在请求之前会从数据库加载已有的缓存信息,并判断需要从服务器请求吗,可以设置每次都从服务器拉去信息。有些缓存信息中包含了信息的有效缓存时间,要是超出缓存期限会促发网络请求。网络请求回来后会会在开辟的IO线程中将数据保存在数据库,氛围新增和更新。更新完毕后,从数据库读取最新消息,通过切换线程将请求结果发送到主线程。

转载于:https://juejin.im/post/5ccffe30e51d453aa10dff3a

你可能感兴趣的文章
maven下的jar项目打包的方法
查看>>
为确保固定资产的财务帐与实物帐一致,应采取的措施
查看>>
c#的托管代码和非托管代码的理解
查看>>
Add Two Numbers
查看>>
Java strictfp
查看>>
新建jsp项目
查看>>
numpy.loadtxt()
查看>>
Chrome 调用vue.js 记录
查看>>
将float转换为数据类型numeric时出现算术溢出错误
查看>>
svg矢量图制作工具(Sketsa SVG Editor) v7.1.1 中文免费版
查看>>
关于ListBox在Grid中无法充满的问题
查看>>
WPF之托盘图标的设定
查看>>
HTTP协议详解(真的很经典)
查看>>
(转)什么是云计算
查看>>
新书推荐:细说PHP(含样章试读)
查看>>
shell常识总结
查看>>
大道至简,职场上做人做事做管理
查看>>
make 参数定义
查看>>
java从字符串中提取数字
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>