OKHTTP和Retrofit
来源:互联网 发布:mysql 基数低 不走索引 编辑:程序博客网 时间:2024/05/30 04:14
基本网络
基于NIO和Okio
NIO 就是 new IO,java 1.4之后采用的IO方案, 支持Buffer读写
OkIO 核心也是Buffer读写,内部使用了一个Segment和SegmentPool,维持着一个链表,其循环利用的机制和Android中Message的利用机制是一模一样的
Segment Buffer的写操作,实际上就是不断增加Segment的一个过程,读操作,就是不断消耗
Segment中的数据,如果数据读取完,则使用SegmentPool进行回收。
当复制内存数据时,使用Segment的共享机制,多个Segment共享一份data[]。
Buffer更多的逻辑主要是跨Segment读取数据,需要把前一个Segment的尾端和后一个Segment的前端拼接在一起,因此看起来代码量相对多,但其实开销非常低。
支持 SPDY
基于TCP的应用层协议,是对HTTP协议的增加,包括数据流的多路复用,报头压缩,请求优先级等
支持GZIP
有GZIPInputStream , GzipSource(OutputStream) ,GzipSink(InputStream)
封装了线程池,数据转换,基本错误处理等
Android 4.4之后替代了HtpUrlConnection
Retrofit
异步请求的发送请求过程
步骤1:对网络请求接口的方法中的每个参数利用对应ParameterHandler进行解析,再根据ServiceMethod对象创建一个OkHttp的Request对象;
步骤2:使用OkHttp的Request发送网络请求;
步骤3:对返回的数据使用之前设置的数据转换器(GsonConverterFactory)解析返回的数据,最终得到一个Response对象;
步骤4:进行线程切换从而在主线程处理返回的数据结果。
- OKHTTP和Retrofit
- Retrofit、RxJava和OkHttp使用
- Retrofit和okhttp的了解和使用
- OKhttp+Retrofit
- Retrofit使用OkHttp保存和添加cookie
- Okhttp和Retrofit的get,post请求
- Retrofit和OkHttp简单的二次封装
- Retrofit和OkHttp的简单配合使用
- 使用 Retrofit 和 okhttp 强制缓存失效问题
- 关于okhttp和retrofit的使用的疑问
- 模仿retrofit将okhttp和rxjava进行整合
- 网络开源框架OkHttp和Retrofit总结分享
- Android网络请求发展简史和RxJava+Retrofit+OkHttp实践
- Android网络请求发展简史和RxJava+Retrofit+OkHttp实践
- Android okHttp的配置使用和Retrofit简单的配置
- Retrofit 中设置 OkHttp 拦截器,保存和添加 Cookie
- Retrofit和RxJava加OkHttp网络请求进行二次封装
- MVP和Retrofit+Rxjava+OkHttp封装结合请求数据
- linux 中解析命令行参数 (getopt_long用法)
- poj 1741 点分治
- Laravel 同域 不同项目间公用 Cookie 实例
- Ubuntu 中一些包的安装
- UML建模之
- OKHTTP和Retrofit
- libvirt api 虚拟机动态迁移代码示例(非共享存储)
- ORACLE索引原理
- 边框回归(Bounding Box Regression)详解
- js得到连两个时间段之间所有的年-月 获取当前日期 格式化日期 根据指定日期得到该日期该月份的最后一天
- 隐马尔科夫模型(二)
- C++实现WEB功能方法总结
- cookie和session的区别
- 发现了一个好用的WEB项目打印控件--四方打印