一:简介
Interceptor接口:观察,修改并潜在地将请求发出的短路和相应的短路响应返回。通常,拦截器添加,删除或转换请求中的标头
或响应。主要方法:Response intercept(Chain chain) throws IOException,此方法中的参数Chain接口也是在Interceptor中定义的。
实现类:
1. RetryAndFollowUpInterceptor:主要用于从故障中恢复或者执行重定向。(失败重连).
-
-
-
-
-
-
- 建立StreamAllocation对象,
- 调用Chain的proceed方法发起请求
- 根据异常结果或者请求结果,判断是否要重新请求
- 调用下一个拦截器对Response进行处理
-
-
-
-
-
2. BridgeInterceptor:从应用程序代码到网络代码的桥梁。 首先它从用户请求建立一个网络请求。 然后继续呼叫网络。 最后,它从网络响应中建立用户响应。设置内容长度,编码,压缩等等
- 负责将用户构建的Request转化为能够进行网络访问的请求
- 将这个Request进行网络请求
- 将网络请求的响应转化为用户可用的Response
3.CacheInterceptor:提供来自缓存的请求并将响应写入缓存