码迷,mamicode.com
首页 > Web开发 > 详细

okHttp源码解析------待续

时间:2017-04-25 15:06:29      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:步骤   eal   sock   使用   web   并发   cep   tar   class   

 

看该篇文章前首先要熟悉okHttp的使用,建议先读OkHttp的简单使用

本文的源码解析参考链接:okhttp3总和解析

1.从URL请求处理开始分析

由异步将请求加入调度方法开始引入正题:

getClient().newCall(request).enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {

                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                    }
});
/**
   * Prepares the {@code request} to be executed at some point in the future.
   */
  @Override public Call newCall(Request request) {
    return new RealCall(this, request);
  }
@Override public void enqueue(Callback responseCallback) {
    enqueue(responseCallback, false);
  }

  void enqueue(Callback responseCallback, boolean forWebSocket) {
    synchronized (this) {
      if (executed) throw new IllegalStateException("Already Executed");
      executed = true;
    }
    client.dispatcher().enqueue(new AsyncCall(responseCallback, forWebSocket));
  }

由源码上的调用顺序,我们将步骤转化为以下的几个技术点:

 

由以上的使用okhttp请求的调用代码,可以看到最终的请求时通过dispatcher来完成的。

2.Dispatcher调度者

Dispatcher进行线程分发,有两个方法,一个是普通的单线程,也就是线程阻塞的方式请求;另一种就是通过队列进行并发任务的分发和回调,下面主要分析第二种:

 

3.Interceptor拦截器

 

4.缓存策略

 

4.Socket管理(StreamAllocation)

 

5.HTTP请求序列化/反序列化

 

6计算机常识

 

okHttp源码解析------待续

标签:步骤   eal   sock   使用   web   并发   cep   tar   class   

原文地址:http://www.cnblogs.com/could-deng/p/6744974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!