Skip to content
阅读进度

如何编写一个自定义拦截器来统一添加请求头(如 Token)? ​

返回 网络与设备通信 目录

标准回答 ​

实现 Interceptor.intercept:取 chain.request(),用 request.newBuilder().header("Authorization", value).build() 创建新请求,再 return chain.proceed(newRequest)。通过 addInterceptor 注册。Token 只加到预期受信任的目标域名,并设计失效刷新与并发去重。

通俗例子 ​

拦截器从当前登录状态读取 Token,生成新的 Request 并交给下一站;不要给不相关域名也附带同一令牌。

深入解释 ​

**统一加请求头的流程:**拦截器取得原请求,用 builder 构造带新 Header 的请求,再交给后面的链执行。凭据应从受控的会话来源取得,而不是写死在代码里。

**哪些请求不能直接照搬:**不是每个目标域名都应该收到同一个 Token。重定向、外部下载地址和退出登录后的请求都要核对凭据范围,日志也不要完整打印敏感头。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。