1 个不稳定版本

0.11.14 2023 年 3 月 13 日

#319HTTP 客户端

MIT/Apache

515KB
10K SLoC

reqwest

crates.io Documentation MIT/Apache-2 licensed CI

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 上

在 Windows 和 macOS 上

  • 没有。

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

许可证

许可权受以下任一项

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证的定义,将按上述方式双重许可,没有任何附加条款或条件。

依赖关系

~2–24MB
~411K SLoC