Отправка HTTP-запроса

Rust:
Отправка HTTP-запроса

Как:

Чтобы отправить GET-запрос в Rust, мы используем крейт reqwest. Сначала добавьте его в ваш Cargo.toml:

[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }

Теперь набросаем асинхронный код на Rust:

use reqwest;
use tokio;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
    let response_text = reqwest::get("https://api.example.com/data")
        .await?
        .text()
        .await?;
    
    println!("Ответ: {}", response_text);
    Ok(())
}

Пример вывода может выглядеть так:

Ответ: {"key": "value", "hello": "world"}

Вот и всё, что нужно, чтобы обратиться к конечной точке с GET-запросом!

Подробнее

HTTP-запросы стары как мир в интернет-летах. Они являются основой веб-коммуникации. Rust использует крейты, такие как reqwest, поскольку он не является языком, специфичным для веба – гибкость ключевая. reqwest создан на основе hyper, который быстр и низкоуровнев, но reqwest добавляет сверху удобство использования.

Альтернативы reqwest? Конечно. hyper для тех, кто ищет скорость, surf, если вам нравится асинхронный Rust, или ureq для простоты – без необходимости заниматься асинхронными операциями.

Под капотом, когда вы отправляете HTTP-запрос, Rust делает почти то же, что и любой другой язык: устанавливает TCP-соединение, отправляет форматированный HTTP-запрос и интерпретирует сырой ответ. Асинхронная обработка этих запросов – это то, где Rust действительно блестит, позволяя вам делать другие вещи, пока вы ждёте ответа сервера.

Смотрите также