<
Okhttp 对 `addinterceptor` 的顺序处理
>
上一篇

Okhttp 的 `addinterceptor` 和 `addnetworkinterceptor`
下一篇

Okhttp 中 `max Age`、`max Stale` 和 `min Fresh` 同时使用时的效果

OkHttp 对 addInterceptor 的顺序处理

如何处理

  1. 执行顺序
    • 拦截器按照添加的顺序依次执行。第一个添加的拦截器会最先处理请求,最后处理响应。最后一个添加的拦截器会最先处理响应,最后处理请求。
  2. 请求和响应的处理
    • 请求处理:每个拦截器可以修改请求或决定是否继续传递请求。拦截器可以添加、修改或删除请求头,改变请求体,甚至短路请求(直接返回响应而不继续传递)。
    • 响应处理:每个拦截器可以修改响应或决定是否继续传递响应。拦截器可以添加、修改或删除响应头,改变响应体,甚至短路响应(直接返回自定义响应)。

示例

假设你有两个拦截器 InterceptorAInterceptorB,并且它们的顺序如下:

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor(InterceptorA())
    .addInterceptor(InterceptorB())
    .build()

在这种情况下:

影响总结

Top
Foot