美文网首页
OkHttp源码分析总结

OkHttp源码分析总结

作者: 陈超_ | 来源:发表于2019-01-09 15:16 被阅读0次

    先讲述一下Okhttp的如何使用。

    创建一个OkhttpClient,一个Request。通过Client调用newCall方法,传入Request。返回一个Call对象,然后通过Call对象可以执行同步或者异步请求。最后返回请求后的回调

    OkhttpClient可以设置连接超时时长,读取超时时长等信息,Request可以设置Url,以及请求头等信息。

    在newCall以后返回的是一个Call对象。查看源码以后可以知道Call是一个接口,而真正实现方法的是RealCall这个子类

    Call执行同步excute方法

        先判断Call是否已经被执行,如果已经执行过那么会直接抛出异常,否则添加到同步队列当中

        拦截器链获取http响应

    Call执行异步enqueue方法  

        第一步也是先判断Call是否被执行

        然后创建一个实现了Runnable的AsyncCall实现类,添加到队列当中。

        添加的时候会去判断队列是否已经是最大的请求数,如果已经超过了请求数,那么会添加到等待的队列当中。如果没有超过,则直接添加到运行中的队列

          在执行完异步请求以后,会dispatch会执行finish,移除掉这个call,然后执行promoteCalls()方法,去判断等待执行的队列是否还有任务,并且没有超过请求书,如果满足继续执行请求

    相关文章

      网友评论

          本文标题:OkHttp源码分析总结

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