2 个版本
0.10.9 | 2020年10月19日 |
---|---|
0.10.8 | 2020年10月19日 |
#310 in HTTP客户端
405KB
8K SLoC
reqwest
一个易于使用的、包含所有电池的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上
- 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 License,版本 2.0 (LICENSE-APACHE 或 http://apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您提交给作品以供包含的贡献将按上述方式双许可,不附加任何其他条款或条件。
依赖关系
~2–20MB
~382K SLoC