外观
OkHttp 拦截器怎样工作?
标准回答
拦截器按链式结构处理请求和响应。应用拦截器适合统一业务头、业务日志或逻辑层处理;网络拦截器观察实际网络交换,对重定向、重试和缓存场景的触发方式与应用拦截器不同。chain.proceed 继续交给后续链路。(OkHttp 拦截器指南)
机制解释
请求可能经历缓存判断、连接选择或建立、发送、接收以及重试或重定向。不要把一条业务调用假定为只发生一次网络交换,也不要把某个版本的内部类顺序当作永久 API 契约。
延伸追问
能在拦截器里读取响应体做日志吗?响应体通常具有一次消费语义。完整读取可能消耗内容、占用大量内存,还会暴露敏感字段。使用有界、脱敏且不破坏后续消费的方案,并按 API 要求关闭资源。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q34