2个版本
使用旧的Rust 2015
0.5.1 | 2017年1月25日 |
---|---|
0.5.0 | 2017年1月25日 |
#81 在 #uri
79 每月下载
用于 4 crates
13KB
262 行
uhttp_uri -- HTTP URI解析器
此crate提供了一个简单的、零分配的HTTP URI解析器,如请求头中出现的HTTP URI。
通常,组件会在定义的分隔符处提取,但进一步的验证和处理(如百分号解码、查询解码和punycode解码)留给高层。为了追求简单,此crate也不支持泛型和非HTTP URI,如file:
和ftp://
– 仅实现了http://
和https://
方案的简化语法。
示例
use uhttp_uri::{HttpUri, HttpResource, HttpScheme};
let uri = HttpUri::new("https://example.com:443/r/rarepuppers?k=v&v=k#top").unwrap();
assert_eq!(uri.scheme, HttpScheme::Https);
assert_eq!(uri.authority, "example.com:443");
assert_eq!(uri.resource.path, "/r/rarepuppers");
assert_eq!(uri.resource.query, Some("k=v&v=k"));
assert_eq!(uri.resource.fragment, Some("top"));
let res = HttpResource::new("/shittydogs?lang=en");
assert_eq!(res.path, "/shittydogs");
assert_eq!(res.query, Some("lang=en"));
assert_eq!(res.fragment, None);
用法
此crate可以通过在Cargo.toml
中添加它作为依赖项通过cargo使用
[dependencies]
uhttp_uri = "0.5.1"
并在crate根目录中导入它
extern crate uhttp_uri;