Gửi một yêu cầu HTTP

Rust:
Gửi một yêu cầu HTTP

Làm thế nào:

Để gửi một yêu cầu GET trong Rust, chúng ta sử dụng crate reqwest. Đầu tiên, thêm nó vào Cargo.toml của bạn:

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

Bây giờ, viết một số mã Rust bất đồng bộ:

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!("Phản hồi: {}", response_text);
    Ok(())
}

Mẫu đầu ra có thể trông giống như thế này:

Phản hồi: {"key": "value", "hello": "world"}

Đó là tất cả những gì bạn cần để thực hiện một yêu cầu GET tới một điểm cuối!

Sâu hơn

Yêu cầu HTTP cổ xưa như núi trong thời gian internet. Chúng là xương sống của giao tiếp dựa trên web. Rust sử dụng các crate như reqwest bởi vì nó không phải là một ngôn ngữ cụ thể cho web – linh hoạt là chìa khóa. reqwest được xây dựng trên hyper, nhanh và cấp thấp, nhưng reqwest thêm vào đó sự dễ sử dụng.

Có sự thay thế cho reqwest? Chắc chắn rồi. hyper cho những người yêu tốc độ, surf nếu bạn thích Rust bất đồng bộ hoặc ureq cho sự đơn giản – không cần lo lắng về bất đồng bộ.

Bên trong, khi bạn gửi một yêu cầu HTTP, Rust đang làm điều gì đó giống như bất kỳ ngôn ngữ nào khác: thiết lập một kết nối TCP, gửi một yêu cầu HTTP được định dạng, và giải mã phản hồi thô. Xử lý bất đồng bộ của các yêu cầu này là nơi Rust tỏa sáng, cho phép bạn làm những việc khác trong khi chờ đợi câu trả lời của máy chủ.

Xem Thêm