okhttp3.11.0 源码分析-整体流程

本文详细解析了OkHttpClient的关键类及其调用关系,包括OkHttpClient、RealCall、RealInterceptorChain等,介绍了同步和异步请求的使用方法,并通过流程图展示了请求处理的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 这是执行过程中主要的类,之间存在调用关系。把这个几个类的源码搞清楚了就差不多了。后面会在其他文章中根据这些类作相应的分析。

1、OkHttpClient   
       1、Internal
       2、Builder
               1、Dispatcher
               2、EventListener
               3、ConnectionPool
                           1、RouteDatabase
        3、Util      
        4、PlatForm
                1、BasicTrustRootIndex
        5、CertificateChainCleaner
        6、CertificatePinner
        7、Request
                1、Headers
                         1、Builder
                2、HttpUrl
         8、RealCall
                  1、RetryAndFollowUpInterceptor
                            1、StreamAllocation
                                     1、RouteSelector
                            2、Address
                            3、Response
                  2、EventListener
                  3、BridgeInterceptor
                  4、CacheInterceptor
                  5、ConnectInterceptor
                  6、CallServerInterceptor
                  7、RealInterceptorChain

二、使用方式

1、构造OkHttpClient

 OkHttpClient client = new OkHttpClient();

2、构造Request

Request request = new Request.Builder()
        .url(url)
        .build();

3、同步请求

Response response = client.newCall(request).execute()

4、异步请求

client.newCall(request).enqueue(callback);

三、 通过一张总的流程图就可以对流程有清晰的认识
okhttp3.0流程图.png

  • OkHttpClient 通过 newCall() 为Request 创建 Call
  • RealCall 是 Call 的具体实现,分别进行同步或者异步的处理,同步的话直接执行,异步的话通过Dispacher 进行处理。
  • 最终通过getResponseWithInterceptorChain() 调用 RealInterceptorChain 中的process() 返回 Response

总结

  • 所有涉及的关键类
  • 使用方式
  • 通过流程图了解实现过程

如果对你有一点点帮助,那是值得高兴的事。:)

我的csdn:http://blog.youkuaiyun.com/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值