3 个不稳定版本
0.12.0 | 2024 年 8 月 2 日 |
---|---|
0.11.20 | 2024 年 1 月 8 日 |
0.11.16 | 2023 年 4 月 12 日 |
#33 in HTTP 客户端
6,718 每月下载量
555KB
11K SLoC
cf-reqwest
为 Rust 提供的舒适、内置电池的 HTTP 客户端。
- 纯文本体,JSON,表单编码,多部分
- 可自定义的重定向策略
- HTTP 代理
- 通过系统本机 TLS (或可选,rustls) 的 HTTPS
- Cookie 存储
- WASM
- 变更日志
关于此分支
这是 reqwest 库的一个分支,其中包含了一些未接受到上游的功能。
我们建议使用库的上游版本,除非你需要这些功能之一。
示例
此异步示例使用 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 = cf_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 = cf_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.0 (LICENSE-APACHE 或 http://apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非你明确表示,否则你故意提交给包括你在内的任何工作贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~2–25MB
~419K SLoC