我一直在嘗試從 URL 中洗掉特定查詢(例如:“remove=me”),但似乎沒有針對它的 API
use url::{Url};
fn main(){
let mut url = Url::parse("https://www.example.com/foo?id=1&remove=me").unwrap();
url.set_query(None); // This will remove all the query parameters
println!("{}", URL);
// expected result: https://www.example.com/foo?id=1
// actual result: https://www.example.com/foo
}
uj5u.com熱心網友回復:
確實,url箱子讓它很尷尬。查詢字串只能追加或清除。編輯它需要一些技巧:生成一組過濾的名稱/值對,然后清除和擴展查詢字串。
let mut url = Url::parse("https://www.example.com/foo?id=1&remove=me").unwrap();
let query: Vec<(String, String)> = url
.query_pairs()
.filter(|(name, _)| name != "remove")
.map(|(name, value)| (name.into_owned(), value.into_owned()))
.collect();
url.query_pairs_mut().clear().extend_pairs(&query);
println!("{}", url);
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/483941.html
