RetryAndFollowUpInterceptor 重定向拦截器
Okhttp内置的第一个拦截器,通过while(true)的死循环来进行对异常结果或响应结果判断是否要进行重新请求.负责失败重连和重定向的拦截器。
BridgeInterceptor 桥拦截器
它可以对网络文件的类型,网页的编码和返回的数据进行解压处理.是为用户构建的一个Request请求转化为能够进行网络访问的请求,同时将网络请求回来的响应Response转化为用户可用的Response。
CacheIntercepor 缓存拦截器
可以根据OkhttpClient对象的配置以及缓存策略对请求值进行缓存。
ConnectIntercepor 连接拦截器
在Okhttp底层是通过socket的方式于服务端进行连接的,并且在连接建立之后会通过OKIO获取通向server端的输入流Source和输出流Sink。
CallServerInterceptor 请求拦截器
CallServerInterceptor 在 ConnectInterceptor 拦截器的功能就是负责与服务器建立 Socket 连接,并且创建了一个 HttpStream 它包括通向服务器的输入流和输出流。而接下来的 CallServerInterceptor 拦截器的功能使用 HttpStream 与服务器进行数据的读写操作的。
拦截器用了责任链设计模式
,它将请求一层一层向下传,直到有一层能够得到Response就停止向下传递。
然后将response
向上面的拦截器传递,然后各个拦截器会对respone
进行一些处理,最后会传到RealCall
类中通过execute
来得到response