美文网首页
OkHttp 网络框架源码解析

OkHttp 网络框架源码解析

作者: jovelin | 来源:发表于2019-03-12 18:11 被阅读0次

    简单用法

    1.创建 OkHttpClient 对象
    核心客户端类
    通过静态内部类 Builder() 设置相关参数
    
    2.创建 Request 对象
    构建请求参数,传入请求报文信息 url、method、header
    
    3.创建 Call 对象
    即具体请求实例,将 Request 封装成 Call 对象
    newCall 传入 request 对象创建
    
    4.调用 Call 的 execute/enqeue 方法发送请求
    同步需要注意:发送请求后,就会进入阻塞状态,直到收到响应
    

    流程图解

    image.png

    OkHttpClient

    Builder 构建方式,链式调用

    dispatcher 分发基类,分发器接收到同步、异步请求队列,分发同步、异步请求

    ConnectionPool 连接池,相同请求复用,支持并发

    image.png

    Dispatcher

    分发同步/异步任务
    维护任务队列
    runningAsyncCalls (正在执行的任务,包括执行在取消的)
    readyAsyncCalls (等待就绪的任务)
    runningSyncCalls

    同步/异步

    同步请求就是执行请求的操作是阻塞式,直到 HTTP 响应返回
    异步请求就类似于非阻塞式的请求,它的执行结果一般都是通过接口回调的方式告知调用者

    拦截器

    官网:拦截器是 OkHttp 中提供一种强大机制,它可以实现网络监听、请求以及响应重写、请求失败重试等功能

    image.png image.png

    ApplicationInterceptor 系统拦截器
    ConnectInterceptor 网络拦截器

    image.png image.png

    ConnectionPool

    链接复用,多路复用

    相关文章

      网友评论

          本文标题:OkHttp 网络框架源码解析

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