7个版本
0.1.6 | 2023年5月9日 |
---|---|
0.1.5 | 2023年4月17日 |
0.1.4 | 2022年11月17日 |
#203 在 HTTP客户端
用于 lucidity
195KB
3.5K SLoC
nightfly
此项目是持续努力将 reqwest 库移植到 lunatic 运行时的成果
功能
- 请求和响应体的 json、文本和字节
- 使用 brotli、gzip 和 deflate 进行解压缩
- 处理重定向
- cookie
- 分块响应
- 处理每个客户端的多个打开 TCP 流
- 超时(需要更多测试)
- 响应管道(需要分块编码)
- 连接池(需要更多使用以找到良好的方法)
- 处理代理
- 升级、socks5 支持和 WebSocket
- 自定义 DNS 解析器
为 lunatic 运行时编写的 Rust 的易用、功能齐全的 HTTP 客户端。
- 普通体、JSON、表单编码、多部分(请参阅示例)
- 具有不同策略的重定向
- 通过 lunatic-native TLS 进行 HTTPS(请参阅示例)
- Cookie 存储
- 可自定义基于函数的重定向策略(进行中)
- HTTP 代理(进行中)
示例
此示例使用 Lunatic 并启用了某些可选功能,因此您的 Cargo.toml
可能如下所示
[dependencies]
nightfly = { "0.1.0" }
lunatic = { "0.12.0" }
然后是代码
use std::collections::HashMap;
#[lunatic::main]
fn main() {
let resp = nightfly::get("https://httpbin.org/ip")
.unwrap()
.json::<HashMap<String, String>>()
.unwrap();
println!("{:#?}", resp);
Ok(())
}
需求
- 运行 lunatic 虚拟机 的版本。
许可证
根据以下之一授权
- Apache 许可证 2.0(LICENSE-APACHE 或 http://apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非您明确声明,否则您有意提交的任何贡献,根据 Apache-2.0 许可证定义,均应如上双许可,而无需任何附加条款或条件。
依赖项
~18MB
~547K SLoC