android第三方框架(四)Okhttp

优点:支持http2.0,socket自动选择最好路线,并支持自动重连,维护连接池,减少握手次数,拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING),缓存(基于Headers的缓存策略,不仅可以缓存数据,就连响应头都给缓存了)。新版本的OkHttp还有一个新的亮点就是支持WebScoket,这样我们就可以非常方便的建立长连接了。

简单异步流程:

android第三方框架(四)Okhttp_第1张图片

同步流程:

OkHttpClient client = new OkHttpClient();

                Request request = new Request.Builder().url("http://www.baidu.com") .build();

                try {

                    Response response = client.newCall(request).execute();

                    if (response.isSuccessful()) {

                        System.out.println("成功");

                    }

                } catch (IOException e) {

                    e.printStackTrace();

                }

整体请求过程:异步放进线程池中来异步执行,同步放入请求的队列,同步执行。


android第三方框架(四)Okhttp_第2张图片

okttp的一大特色:拦截器(一个拦截链)


android第三方框架(四)Okhttp_第3张图片

作用:通过定义许多拦截器一步一步地对Request进行拦截处理(从头至尾),直到请求返回网络数据,后面又倒过来,一步一步地对Response进行拦截处理,最后拦截的结果就是回调的最终Response。

OkHttpClient 设置nterceptors (),主要以下六大类别:

1.负责失败重试以及重定向的RetryAndFollowUpInterceptor

2.负责把用户构造的请求转换为发送到服务器的请求、把服务器返回的响应转为用户友好的响应的 BridgeInterceptor

3.负责读取缓存直接返回、更新缓存的 CacheInterceptor

4.负责和服务器建立连接的 ConnectInterceptor

4.配置 OkHttpClient 时设置的 networkInterceptors

6.负责向服务器发送请求数据、从服务器读取响应数据的 CallServerInterceptor


android第三方框架(四)Okhttp_第4张图片

简单例子:


android第三方框架(四)Okhttp_第5张图片

简单封装:


android第三方框架(四)Okhttp_第6张图片

未完待续..............

你可能感兴趣的:(android第三方框架(四)Okhttp)