Как передать строку запроса в HttpRequest.url_for () в actix-web? - PullRequest
0 голосов
/ 26 апреля 2019

Документация о url_for.

Код:

fn index(req: HttpRequest) -> HttpResponse {
    let url = req.url_for("foo", &["1", "2", "3"]); // <- generate url for "foo" resource
    HTTPOk.into()
}

fn main() {
    let app = Application::new()
        .resource("/test/{one}/{two}/{three}", |r| {
             r.name("foo");  // <- set resource name, then it could be used in `url_for`
             r.method(Method::GET).f(|_| httpcodes::HTTPOk);
        })
        .finish();
}

Как добавить к сгенерированному URL строку запроса, например ?name=Alex? Есть хороший встроенный способ сделать это, используя HttpRequest.url_for() (а не просто добавить, как url += query_str)

1 Ответ

0 голосов
/ 09 июля 2019

url_for дает вам Result<Url, Error>, который вы можете развернуть и использовать .set_query на:

req.url_for("foo", &["1", "2", "3"]).unwrap().set_query(Some("q=asdf"));
...