android第三方框架(四)Okhttp

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

简单异步流程:

同步流程:

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();

                }

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


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


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

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

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

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

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

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

4.配置 OkHttpClient 时设置的 networkInterceptors

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


简单例子:


简单封装:


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容