30 lines
No EOL
779 B
Rust
30 lines
No EOL
779 B
Rust
use async_trait::async_trait;
|
|
use reqwest::{Request, Response};
|
|
use reqwest_middleware::{Middleware, Next, Result};
|
|
|
|
pub struct DefaultHeaderMiddleware {
|
|
user_agent: String,
|
|
}
|
|
|
|
impl DefaultHeaderMiddleware {
|
|
pub fn new() -> Self {
|
|
DefaultHeaderMiddleware {
|
|
user_agent: format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
|
|
}
|
|
}
|
|
}
|
|
|
|
#[async_trait]
|
|
impl Middleware for DefaultHeaderMiddleware {
|
|
async fn handle(
|
|
&self,
|
|
mut req: Request,
|
|
extensions: &mut task_local_extensions::Extensions,
|
|
next: Next<'_>,
|
|
) -> Result<Response> {
|
|
let ua = self.user_agent.as_str();
|
|
req.headers_mut().insert("User-Agent", ua.parse().unwrap());
|
|
|
|
next.run(req, extensions).await
|
|
}
|
|
} |