2 个版本
0.1.1 | 2020 年 11 月 19 日 |
---|---|
0.1.0 | 2020 年 11 月 18 日 |
#27 in #http-parser
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