1 个不稳定版本
0.11.14 | 2023 年 3 月 13 日 |
---|
#319 在 HTTP 客户端
515KB
10K SLoC
reqwest
Rust 的一个易于使用的、包含电池的 HTTP 客户端。
- 纯文本正文、JSON、表单编码、多部分
- 可定制的重定向策略
- HTTP 代理
- 通过系统原生 TLS(或可选的,rustls)进行 HTTPS
- Cookie 存储
- WASM
- 变更日志
示例
此异步示例使用 Tokio 并启用了一些可选功能,因此您的 Cargo.toml
可能看起来像这样
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
然后是代码
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(())
}
阻塞客户端
有一个可选的“阻塞”客户端 API 可以启用
[dependencies]
reqwest = { version = "0.11", features = ["blocking", "json"] }
use std::collections::HashMap;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::blocking::get("https://httpbin.org/ip")?
.json::<HashMap<String, String>>()?;
println!("{:#?}", resp);
Ok(())
}
要求
在 Linux 上
- OpenSSL 1.0.1、1.0.2、1.1.0 或 1.1.1 与头文件(见 https://github.com/sfackler/rust-openssl)
在 Windows 和 macOS 上
- 没有。
Reqwest 使用 rust-native-tls,如果可用,将使用操作系统的 TLS 框架,即 Windows 和 macOS。在 Linux 上,它将使用 OpenSSL 1.1。
许可证
许可权受以下任一项
- Apache 许可证第 2 版 (LICENSE-APACHE 或 http://apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证的定义,将按上述方式双重许可,没有任何附加条款或条件。
依赖关系
~2–24MB
~411K SLoC