okhttp的应用详解与源码解析--拦截器源码解析

研究框架我们不但要学会怎么使用,而且还要知道它的底层工作原理,对原理的了解程度决定了你能解决问题的程度,当开发中遇到问题的时候我们才能快速的定位问题 ,快速的透过它的现象看到他的本质,关于源码解析我们只看核心逻辑,要避免深入代码细节无法自拔或长篇大论不知道所云的错误,本专栏的同步视频教程已经发布到csdn学院,地址如下:https://edu.csdn.net/course/detail/29076

我们知道请求被五个拦截器由上向下层层包装处理,然后再由下到上追层将相应结果处理返回,每个请求实体和响应实体的构建都是通过建造者设计模式去完成的,责任链负责流程的控制,而建造者负责对每个对象的控件,责任链在于把控整个全局,而建造者更加关注是每个对象的细节,这才是真个okhttp框架的灵魂所在,他们各自具体功能职责如下所示:

RetryAndFollowUpInterceptor:重试及重定向拦截器
BridgeInterceptor:桥接拦截器
CacheInterceptor:缓存拦截器
ConnectInterceptor:连接拦截器
CallServerInterceptor:读写拦截器

尽管每个拦截器的具体职责不一样,但是他们的处理套路都是一致的,首先对请求的Request进行处理,接着执行下一个拦截器,然后对Response进行处理,最后返回Response给上一个拦截器

@Override public Response intercept(Chain chain) throws IOException {
    Request request = chain.request();
    //1.Request阶段

    //2.把请求传递给下一个拦截器
    response = ((RealInterceptorChain) chain).proceed(request, streamAllocation, null, null);

    //3.Response阶段

	
©️2020 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐 返回首页
实付29.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值