美文网首页Android-2
OkHttp系列文章(四) - OkHttp拦截器原理

OkHttp系列文章(四) - OkHttp拦截器原理

作者: 世道无情 | 来源:发表于2018-06-19 15:57 被阅读65次

    前言

    OkHttp系列文章
    OkHttp系列文章(一) - Java网络编程基础
    OkHttp系列文章(二) - Http与Https
    OkHttp系列文章(三) - OkHttp
    OkHttp系列文章(四) - OkHttp拦截器原理
    OkHttp系列文章(五) - OkHttp的5个拦截器作用
    OkHttp系列文章(六) - OkHttp的5个拦截器图解分析
    OkHttp系列文章(七) - 文件更新下载

    1. OkHttp拦截器原理如下图所示

    OkHttp拦截器工作原理.png
    分析OkHttp拦截器原理:
    第一次请求:

    1>:首先是客户端发起Request请求,然后经过所有的拦截器,比如第一层是达到BridgeInterceptor基础拦截器,这个拦截器它会添加一些自己的处理,然后到达下一个拦截器;
    2>:比如下一个拦截器是CacheInterceptor缓存拦截器,如果当前没有缓存就又会走到下一个拦截器;
    3>:比如下一个拦截器是ConnectInterceptor建立连接拦截器,这个拦截器与服务器进行建立连接,然后返回数据一路给上一个拦截器,直到最后返回给客户端为止;

    第二次请求:

    1>:当在第二次请求时候,首先客户端发起Request请求时,首先到大BridgeInterceptor拦截器,它会添加一些自己的处理,然后达到第二层拦截器;
    2>:当到达第二层的CacheInterceptor拦截器,发现有缓存数据,这个时候就直接走红色路线部分,在缓存拦截器中就给 客户端把Response返回了,就不会走下一个ConnectInterceptor拦截器了;
    3>:如果自己有自定义的拦截器,可以添加到BridgeInterceptor拦截器上边,也就是添加到第一个拦截器的位置,这个自定义的拦截器添加的位置完全由自己来定;

    自己可以在任何一个地方添加拦截器进行拦截;

    以上就是 OkHttp拦截器执行原理

    2. getResponseWithInterceptorChain() 作用:

    把请求Request 变为 Response;

    相关文章

      网友评论

        本文标题:OkHttp系列文章(四) - OkHttp拦截器原理

        本文链接:https://www.haomeiwen.com/subject/anpweftx.html