Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpHtQr 244 of 288 menu
◀ ▶

Параметры адреса в Rust

После пути в адресе часто идут параметры: имя, знак равенства и значение, несколько пар разделяют амперсандом. Спецсимволы в значениях кодируют автоматически, если не склеивать хвост вручную.

Крейт принимает срез пар строк и сам собирает хвостовую часть после знака вопроса. Пары задают кортежами из двух строк; порядок в срезе может отличаться от итоговой строки, для сервера это обычно не важно.

Добавим к учебному хосту параметр поиска:

#[tokio::main] async fn main() { let client = reqwest::Client::new(); let url = "https://example.com/search"; match client .get(url) .query(&[("q", "rust"), ("page", "1")]) .send() .await { Ok(resp) => { println!("{}", resp.status().as_u16()); if let Err(e) = resp.text().await { println!("{}", e); } } Err(e) => println!("{}", e), } }

В итоговой строке адреса появятся закодированные пары. Хост может ответить кодом двести или другим числом; главное, что параметры ушли вместе с запросом.

Один ключ можно передать несколько раз, если повторить пару в срезе:

#[tokio::main] async fn main() { let client = reqwest::Client::new(); let url = "https://example.com/tags"; match client .get(url) .query(&[("tag", "news"), ("tag", "rust")]) .send() .await { Ok(resp) => match resp.text().await { Ok(body) => println!("{}", body.len()), Err(e) => println!("{}", e), }, Err(e) => println!("{}", e), } }

Дан адрес:

https://example.com/item

Допишите параметр id со значением 42 через срез пар, выполните запрос и выведите числовой код ответа.

Дан фрагмент:

let pairs = [("lang", "ru")];

Скажите, куда в цепочке запроса подставить pairs и появится ли знак вопроса в адресе автоматически.

Дан адрес:

https://example.com/search

Передайте параметр q со значением book, прочитайте тело ответа и выведите его длину или текст ошибки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить