Rust:
Tải trang web
Cách thực hiện:
Hãy tải xuống một trang web sử dụng crate reqwest
của Rust, nó cung cấp một API không đồng bộ, đơn giản để thực hiện các yêu cầu HTTP.
Đầu tiên, thêm reqwest
và tokio
vào file Cargo.toml
của bạn:
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
Bây giờ, trong code Rust của bạn:
use reqwest;
use tokio;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let url = "http://example.com";
let res = reqwest::get(url).await?;
let body = res.text().await?;
println!("Nội dung:\n{}", body);
Ok(())
}
Đầu ra mẫu có thể trông như thế này, mặc dù nội dung thực tế có thể thay đổi:
Nội dung:
<!doctype html>
<html>
<head>
<title>Ví dụ về Tên miền</title>
...
</body>
</html>
Đi sâu vào vấn đề
Crate reqwest
là một trong những cách đơn giản nhất để tải nội dung web bằng Rust. Nó được phát triển từ các thư viện HTTP trước đó, cung cấp cả giao diện đồng bộ và không đồng bộ.
Các phương án thay thế bao gồm các thư viện cấp thấp hơn như hyper
(mà chính reqwest
sử dụng dưới hình thức cơ bản), hoặc sử dụng các liên kết curl
cho Rust.
Các bước thực hiện chính cho việc tải một trang bao gồm việc thực hiện một yêu cầu GET HTTP và xử lý phản hồi. Lập trình không đồng bộ với tokio
có nghĩa là ứng dụng của bạn vẫn phản hồi trong khi hoạt động mạng hoàn thành.