2 个版本

0.1.1 2020 年 11 月 19 日
0.1.0 2020 年 11 月 18 日

#27 in #http-parser

MIT 许可证

15KB
312

SAF HTTP 解析器

一个非常简单的 Rust 库,用于简单人士解析 HTTP 消息。

用法

您将此库与 http crate 结合使用,因为它依赖于那里定义的类型。请确保在您的 Cargo.toml 中添加了此 crate。

[dependencies]
http = "*"
saf-httparser = "*"

此库仅用于一件事。您有一个 HTTP 消息的字节数据,并希望将其解析为 http::Request。库仅公开了两个供您使用的函数。

use saf_httparser::request_from_bytes;
use http::Version;

let example_request = b"GET /somepath HTTP/1.1\r\n\
                        Host:www.somehost.com\r\n\
                        Content-Type:text/plain\r\n\r\nan awesome message";

let request: Request<&[u8]> = request_from_bytes(example_request).unwrap();

assert_eq!(request.method().as_str(), "GET");
assert_eq!(request.uri().path(), "/somepath");
assert_eq!(request.version(), Version::HTTP_11);
assert_eq!(request.headers().get("host").unwrap(), &"www.somehost.com");
assert_eq!(request.headers().get("content-type").unwrap(), &"text/plain");
assert_eq!(request.body(), b"an awesome message");

这是一个最低限度的 HTTP 消息解析库。它解析符合 HTTP 消息结构规范的每个 HTTP 消息。如果消息不符合正确的结构,它将返回一个包含错误的 String,并包装在 Err 中。

依赖项

~575KB