余一

纸上得来终觉浅,绝知此事要躬行。

0%

Android网络编程

OkHttp

OkHttp是一个HTTP请求引擎,负责任何底层网络操作,缓存,请求和响应操作等。

出现背景

在okhttp出现以前,android上发起网络请求要么使用系统自带的HttpClientHttpURLConnection、要么使用google开源的Volley、要么使用第三方开源的AsyncHttpClient, 随着互联网的发展,APP的业务发展也越来越复杂,APP的网络请求数量急剧增加,但是上述的网络请求框架均存在难以性能和并发数量的限制

OkHttp流行得益于它的良好的架构设计,强大的拦截器(intercepts)使得操纵网络十分方便;OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github

也得益于强大的生态,大量的流行库都以OkHttp作为底层网络框架或提供支持,比如RetrofitGlideFrescoMoshiPicasso等。

当OKhttp面世之后,瞬间成为各个公司的开发者的新宠,常年霸占github star榜单,okhttp可以说是为高效而生,迎合了互联网高速发展的需要。

特点

  1. 同时支持HTTP1.1与支持HTTP2.0

  2. 同时支持同步与异步请求;

  3. 同时具备HTTP与WebSocket功能;

  4. 拥有自动维护的socket连接池,减少握手次数;

  5. 拥有队列线程池,轻松写并发;

  6. 拥有Interceptors(拦截器),轻松处理请求与响应额外需求(例:请求失败重试、响应内容重定向等等);

Retrofit

Retrofit就是基于OkHttp的网络请求框架的封装。使请求接口和数据解析更加简洁明了。

Retrofit是在OkHttp之上构建的高级REST抽象。