reqwest:Rust 项目最常用的 HTTP 客户端
·
reqwest:Rust 项目最常用的 HTTP 客户端
reqwest 是 Rust 语言中使用量排名靠前的 HTTP 客户端库,GitHub Star 超过 11,000。

在 Rust 里发 HTTP 请求,reqwest 基本是绕不开的库。它由 Tokio 作者 seanmonstar 维护,API 设计走简洁路线,功能覆盖了日常用到的大部分场景。
reqwest 同时提供同步和异步两种 Client。异步模式基于 Tokio 运行时,同步模式开箱即用,不需要引入运行时依赖。

功能方面,reqwest 覆盖了:
- JSON、表单、multipart 等请求体格式
- 自定义重定向策略
- HTTP 代理
- 基于 rustls 的 HTTPS,也支持切换到系统 TLS
- Cookie Store
- WASM 运行
代码层面用起来很直观。先在 Cargo.toml 加依赖:
[dependencies]
reqwest = { version = "0.13", features = ["json"] }
tokio = { version = "1", features = ["full"] }
然后发一个 GET 请求并解析 JSON 响应:
use std::collections::HashMap;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::get("https://httpbin.org/ip")
.await?
.json::<HashMap<String, String>>()
.await?;
println!("{resp:#?}");
Ok(())
}
TLS 方面,reqwest 默认用 rustls,不依赖系统 OpenSSL。需要系统原生 TLS 时,启用 native-tls feature 即可。Linux 上使用 native-tls 需要 OpenSSL 开发库,也可以通过 native-tls-vendored 编译一份内置的 OpenSSL。
项目采用 Apache-2.0 和 MIT 双重许可,商用和开源项目都可以直接使用。
L。
项目采用 Apache-2.0 和 MIT 双重许可,商用和开源项目都可以直接使用。
更多推荐
所有评论(0)