android url拦截器,「Android 路线」| OkHttp 拦截器

3766d8b34745

点赞关注,不再迷路,你的支持对我意义重大!

🔥 Hi,我是丑丑。本文「Android 路线」| 导读 —— 从零到无穷大 已收录。这里有 Android 进阶成长路线笔记 & 博客,欢迎跟着彭丑丑一起成长。(联系方式在 GitHub)

前言

网络请求是 App 中非常重要的一个组件,而 OkHttp + Retrofit 作为官方和业界双重认可的解决方案,其学习价值不必多言;

在这篇文章里,我将分析 OkHttp 拦截器 的实现原理。如果能帮上忙,请务必点赞加关注,这真的对我非常重要。

目录

【图】

1. 前置知识

这篇文章的内容会涉及以下前置 / 相关知识,贴心的我都帮你准备好了,请享用~

2. OkHttp 分发器回顾

OkHttp 分发器主要处理的问题是同步 / 异步请求任务的分发过程。不管是同步请求还是异步请求,RealCall#getResponseWithInterceptorChain()是真正执行请求的地方:

已简化

public Response execute() throws IOException {

...

3、执行请求,阻塞等待响应返回

Response result = this.getResponseWithInterceptorChain();

...

return result;

}

异步请求:AsyncCall.java

5.1 线程池执行(已简化)

protected void execute() {

...

5.1.1 执行请求,阻塞等待响应返回

Response response = getResponseWithInterceptorChain();

if (retryAndFollowUpInterceptor.isCanceled()) {

5.1.2 请求取消

responseCallback.onFailure(RealCall.this, new IOException("Canceled"));

} else {

5.1.3 请求成功

responseCallback.onResponse(RealCall.this, response);

}

...

}

所以,这篇文章要说的其实就是 getResponseWithInterceptorChain() 方法里面的逻辑,这也是 OkHttp 最主要实现的功能。

3.

创作不易,你的「三连」是丑丑最大的动力,我们下次见!

3766d8b34745

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值