4个版本
0.11.16 | 2023年11月15日 |
---|---|
0.11.15 | 2023年4月19日 |
0.11.14 | 2023年2月5日 |
0.11.12 | 2022年10月2日 |
#85 在 WebAssembly
815 每月下载量
用于 11 crates
525KB
10K SLoC
适用于WebAssembly的reqwest
一个便捷、功能齐全的Rust HTTP客户端。这是一个从原始的 reqwest 分支,支持WebAssembly编译目标。这允许reqwest应用程序在WasmEdge运行时中作为轻量级且安全的替代方案,替代Linux容器中的本地编译应用程序。
有关更多详细信息和使用示例,请参阅上游 reqwest 源代码和这些示例。
注意:reqwest_wasi尚不支持SSL / TLS连接。
- 纯文本正文,JSON,表单编码,多部分
- 可自定义的重定向策略
- HTTP代理
- Cookie存储
示例
此异步示例使用Tokio并启用了一些可选功能,因此您的Cargo.toml
可能看起来像这样
[dependencies]
reqwest_wasi = { version = "0.11", features = ["json"] }
tokio_wasi = { version = "1.21", features = ["full"] }
然后是代码
use std::collections::HashMap;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::get("http://eu.httpbin.org/ip")
.await?
.json::<HashMap<String, String>>()
.await?;
println!("{:#?}", resp);
Ok(())
}
阻塞客户端
有一个可选的“阻塞”客户端API可以启用
[dependencies]
reqwest_wasi = { version = "0.11", features = ["blocking", "json"] }
use std::collections::HashMap;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = reqwest::blocking::get("http://eu.httpbin.org/ip")?
.json::<HashMap<String, String>>()?;
println!("{:#?}", resp);
Ok(())
}
许可
根据以下任一项许可
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应如上所述双重许可,没有任何额外的条款或条件。
依赖关系
~2–23MB
~428K SLoC