感谢以下这篇文章
https://www.cnblogs.com/LuLei1990/p/5534791.html
就我个人而言做一些补充
首先如果你没有看过上篇文章的话可以略过,免得浪费时间.
直接看图吧
可能看到有点乱,,实际上,绿线代表请求前的工作过程,红线开始为服务器响应请求后的工作流程,最后黑线为生命周期的结束.
可以看到,包含多个拦截器的时候,会按顺序一层层执行request的处理方式,,直到最后一条绿线的request动作完成后,调用chain.proceed(request) 进行网络请求,请求完成,又再次从第一个拦截器的response开始进行处理,最后完成一次http交互.