2 个版本

0.10.9 2020年10月19日
0.10.8 2020年10月19日

#310 in HTTP客户端


用于 gradescope-submit

MIT/Apache

405KB
8K SLoC

reqwest

crates.io Documentation MIT/Apache-2 licensed CI

一个易于使用的、包含所有电池的Rust HTTP客户端。

  • 普通主体、JSON、urlencoded、multipart
  • 可定制的重定向策略
  • HTTP代理
  • 通过系统原生TLS (或可选,rustls) 进行HTTPS
  • Cookie存储
  • WASM
  • 变更日志

示例

此异步示例使用 Tokio 并启用了一些可选功能,因此您的 Cargo.toml 可能看起来像这样

[dependencies]
reqwest = { version = "0.10", features = ["json"] }
tokio = { version = "0.2", 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.10", 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–20MB
~382K SLoC