视频地址:[https://www.bilibili.com/video/av22712332/?p=8]
一、简介(Square公司贡献)
1.支持HTTP2/SPDY黑科技
也支持HTTP1,目前广泛使用的还是HTTP1,HTTP2没有推广起来。
SPDY介绍往下看
2.socket自动选择最好路线,并支持自动重连。
很强大,如果第一个ip地址连接失败,他会自动找到下一个ip地址自动连接,直到找到合适的ip地址,然后才进行通信。
3.拥有自动维护的socket连接池,减少握手次数。
减少创建对象的开销,提高性能
4.拥有队列线程池,轻松写并发。
5.拥有Interceptors(拦截器)轻松处理请求与响应(比如透明GZIP压缩、转换)
拦截器有2种,一个是应用层的,一个是网络层的。
6.基于Headers的缓存策略
二、SPDY(SpeedY)
1.SPDY是什么?
SPDY是Google开发的基于传输控制协议(TCP)的应用层协议,开发组正在推动SPDY成为正式标准(现为互联网草案)。SPDY协议旨在通过压缩、多路复用和优先级缩短页面的加载时间和提高安全性。
2.SPDY和HTTP的关系:
SPDY协议只是在性能上对HTTP进行了很大的优化,核心思想是尽量减少连接个数,对HTTP的语义没有做太大修改。
具体说就是SPDY使用了HTTP的方法和页眉,但是删除了一些头并重写了HTTP中管理连接和数据转移格式的部分,基本上是兼容HTTP的。
SPDY协议的目的是为了加强HTTP,是对HTTP的一个更好的实现和支持。
3.SPDY的优点
3.1 多路复用、请求优化
3.2 支持服务器推送技术
服务器可以主动向客户端发起通信,向客户端推送数据,这种预加载可以使用户一直保持一个快速的网络
3.3 SPDY压缩了HTTP头
舍弃了不必要的头信息,经过压缩过后可以节省多余数据传输所带来的等待时间和带宽。
3.4 强制使用了SSL传输协议
Google认为WEB未来的发展方向必定是安全的网络连接,全部请求SSL加密后,信息传输更加安全。
三、下载地址
官方:http://square.github.io/okhttp/
源码:https://github.com/square/okhttp
四、使用步骤
1.添加jar包,okhttp、okio
2.创建OkHttpClient对象 OkHttpClient client = new OkHttpClient()
3.get、post请求数据
String run(String url) throws IOException {
// RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, params); Request request = new Request.Builder() .url(url).executed();
// .post(body) .build(); Response response = client.newCall(request).execute(); return response.body().string(); }
4.get、post方法调用
网友评论