首页 > 解决方案 > 如何在 rust 中获取原始 URL 路径?

问题描述

假设我有网址:

http://host/path/to/../some/thing

我想解析 URL 并获取原始/未触及的路径字符串:

/path/to/../some/thing

使用 url::Url,我可以这样做:

let url = url::Url::parse("http://host/path/to/../some/thing").unwrap();
println!("{}", url.path());

但这给出了路径的规范化版本:

/path/some/thing

url::Url 做的比我想要的要多。(它还对事物进行百分比编码。)

其他一些语言使它变得容易,例如在 PHP 中,我可以这样做:

$ php -r 'echo parse_url( "http://host/path/to/../some/thing" )["path"] . "\n";'
/path/to/../some/thing

那么,任何人都可以将我指向另一个可以做到这一点并且已知是可靠/经过测试的 URL 解析板条箱吗?

标签: parsingurlpath

解决方案


推荐阅读