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

Tham khảo thêm: