6个版本

0.11.16 2022年12月27日
0.11.15 2022年10月9日
0.11.0 2021年1月29日

#218 in HTTP客户端

Download history 161/week @ 2024-03-13 202/week @ 2024-03-20 292/week @ 2024-03-27 302/week @ 2024-04-03 339/week @ 2024-04-10 183/week @ 2024-04-17 264/week @ 2024-04-24 215/week @ 2024-05-01 355/week @ 2024-05-08 471/week @ 2024-05-15 348/week @ 2024-05-22 319/week @ 2024-05-29 316/week @ 2024-06-05 170/week @ 2024-06-12 152/week @ 2024-06-19 126/week @ 2024-06-26

每月 799次下载
用于 10 个crate (6 直接使用)

MIT/Apache

510KB
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–21MB
~399K SLoC