Skip to main content

HttpInterceptor

Trait HttpInterceptor 

Source
pub trait HttpInterceptor: Send + Sync {
    // Provided methods
    fn fail(
        &self,
        _status: u16,
        _data: &Bytes,
    ) -> BoxFuture<'_, Result<(), Error>> { ... }
    fn request(
        &self,
        req: RequestBuilder,
    ) -> BoxFuture<'_, Result<RequestBuilder, Error>> { ... }
    fn response(&self, data: Bytes) -> BoxFuture<'_, Result<Bytes, Error>> { ... }
    fn on_done(
        &self,
        _stats: &HttpStats,
        _err: Option<&Error>,
    ) -> BoxFuture<'_, Result<(), Error>> { ... }
}
Expand description

HTTP 请求拦截器 trait,用于在请求发出前后注入自定义逻辑(鉴权、日志、错误处理等)。

Provided Methods§

Source

fn fail(&self, _status: u16, _data: &Bytes) -> BoxFuture<'_, Result<(), Error>>

响应状态码 ≥400 时调用,可将错误信息转换为业务 Error

Source

fn request( &self, req: RequestBuilder, ) -> BoxFuture<'_, Result<RequestBuilder, Error>>

发送前修改请求(如注入鉴权头、签名等)。

Source

fn response(&self, data: Bytes) -> BoxFuture<'_, Result<Bytes, Error>>

收到响应体后进行转换(如解密、解包外层结构等)。

Source

fn on_done( &self, _stats: &HttpStats, _err: Option<&Error>, ) -> BoxFuture<'_, Result<(), Error>>

请求完成后(无论成功或失败)的回调,可用于打印日志或上报指标。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§