Reqwest 0,10
Начиная с документации ящика, мы видим:
Для одного запроса вы можете использовать метод быстрого доступа get
.
В документации get
говорится:
Эта функция создает новый внутренний Client
при каждом вызове, поэтому ее не следует использовать при выполнении большого количества запросов. Вместо этого создайте Client
.
Client
имеет метод request
, который гласит:
Возвращает RequestBuilder
, что позволяет установить заголовки и тело запроса перед отправкой.
RequestBuilder
имеет header
метод. Это можно использовать как:
use reqwest::header::USER_AGENT;
let client = reqwest::Client::new();
let res = client
.get("https://www.rust-lang.org")
.header(USER_AGENT, "My Rust Program 1.0")
.send()
.await?;
Как добавить собственные заголовки?
Если вы посмотрите на подпись для header
, вы увидите, что он принимает общие типы:
pub fn header<K, V>(self, key: K, value: V) -> RequestBuilder where
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
Существует реализация TryFrom<&'a str>
для HeaderName
, поэтому вы можете использовать строковый литерал:
use reqwest; // 0.10.0
use tokio; // 0.2.6
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let client = reqwest::Client::new();
let res = client
.get("https://www.rust-lang.org")
.header("X-My-Custom-Header", "foo")
.send()
.await?;
Ok(())
}
person
Shepmaster
schedule
20.12.2017