2个不稳定版本
0.2.0 | 2023年6月22日 |
---|---|
0.1.0 | 2023年6月22日 |
#483 in HTTP客户端
15KB
249 代码行
reqwest-traits
reqwest-traits
这个crate提供了reqwest crate的traits。它旨在被需要执行HTTP请求、希望允许用户注入自己的reqwest客户端,但不想强制用户使用reqwest::Client的库使用。
示例用例
- 在您的程序中使用reqwest::Client,但使用rvcr注入客户端进行测试,以避免进行真实的HTTP请求。
- 如果您的库的用户想要缓存或跟踪中间件,可以注入他们自己的reqwest::Client,即reqwest_middleware::ClientWithMiddleware。
示例
use reqwest_traits::Client;
struct MyClient<C: Client> {
http: C,
}
async fn plain_reqwest() {
let http = reqwest::Client::new();
let client = MyClient { http };
let req = client.http.get("https://example.com");
let response = req.send().await.unwrap();
assert_eq!(response.status(), 200);
}
async fn reqwest_middleware() {
let http = reqwest_middleware::ClientBuilder::new(
reqwest::Client::new(),
).build();
let client = MyClient { http };
let req = client.http.get("https://example.com");
let response = req.send().await.unwrap();
assert_eq!(response.status(), 200);
}
许可协议:MIT
依赖项
~4–19MB
~252K SLoC