3 个不稳定版本

0.12.0 2024 年 8 月 2 日
0.11.20 2024 年 1 月 8 日
0.11.16 2023 年 4 月 12 日

#33 in HTTP 客户端

Download history 1278/week @ 2024-05-01 1079/week @ 2024-05-08 1166/week @ 2024-05-15 1586/week @ 2024-05-22 1143/week @ 2024-05-29 1424/week @ 2024-06-05 1584/week @ 2024-06-12 2045/week @ 2024-06-19 2135/week @ 2024-06-26 1463/week @ 2024-07-03 1468/week @ 2024-07-10 1338/week @ 2024-07-17 1619/week @ 2024-07-24 2117/week @ 2024-07-31 1770/week @ 2024-08-07 892/week @ 2024-08-14

6,718 每月下载量

MIT/Apache

555KB
11K SLoC

cf-reqwest

crates.io Documentation MIT/Apache-2 licensed CI

为 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 上

在 Windows 和 macOS 上

  • 无。

Reqwest 使用 rust-native-tls,如果可用,将使用操作系统的 TLS 框架,即 Windows 和 macOS。在 Linux 上,它将使用 OpenSSL 1.1。

许可证

许可方式为以下之一

贡献

除非你明确表示,否则你故意提交给包括你在内的任何工作贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~2–25MB
~419K SLoC