2

我有这个 URL 作为String: "http://blah.com/a/b?a=1&b=2"

如何b使用 Rust 删除或替换 GET 参数或完全剥离参数?

rust-url 包的ParseOptions似乎没有给我任何东西。

我是否仅限于使用字符串方法来查找/替换?

4

1 回答 1

2
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);
  }
于 2020-07-02T08:12:37.207 回答