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ủ.