Rust URL 删除特定的 GET 参数
Rust URL remove specific GET parameters
我把这个 URL 作为 String
: "http://blah.com/a/b?a=1&b=2"
.
如何删除或替换 b
的 GET 参数或完全使用 Rust 删除参数?
rust-url 包的 ParseOptions
似乎没有给我任何东西。
我是否仅限于使用字符串方法 find/replace?
let mut url = Url::parse("http://blah.com/a/b?a=1&b=2").unwrap();
url.set_query(None);
您也可以将查询成对进行操作
https://docs.rs/url/2.1.1/url/struct.Url.html#method.query_pairs_mut
示例如何更新 b
的查询值(注意我是 Rust 初学者)
use url::Url;
fn main() {
let url = Url::parse("http://blah.com/a/b?a=1&b=2").unwrap();
let query: Vec<(_, _)> = url.query_pairs()
.filter(|p| p.0 != "b")
.collect();
let mut url2 = url.clone();
url2.set_query(None);
for pair in query {
url2.query_pairs_mut()
.append_pair(&pair.0.to_string()[..], &pair.1.to_string()[..]);
}
url2.query_pairs_mut()
.append_pair("b", "5");
println!("New Query: {}", url2);
}
我把这个 URL 作为 String
: "http://blah.com/a/b?a=1&b=2"
.
如何删除或替换 b
的 GET 参数或完全使用 Rust 删除参数?
rust-url 包的 ParseOptions
似乎没有给我任何东西。
我是否仅限于使用字符串方法 find/replace?
let mut url = Url::parse("http://blah.com/a/b?a=1&b=2").unwrap();
url.set_query(None);
您也可以将查询成对进行操作 https://docs.rs/url/2.1.1/url/struct.Url.html#method.query_pairs_mut
示例如何更新 b
的查询值(注意我是 Rust 初学者)
use url::Url;
fn main() {
let url = Url::parse("http://blah.com/a/b?a=1&b=2").unwrap();
let query: Vec<(_, _)> = url.query_pairs()
.filter(|p| p.0 != "b")
.collect();
let mut url2 = url.clone();
url2.set_query(None);
for pair in query {
url2.query_pairs_mut()
.append_pair(&pair.0.to_string()[..], &pair.1.to_string()[..]);
}
url2.query_pairs_mut()
.append_pair("b", "5");
println!("New Query: {}", url2);
}