Baixando uma página da web

Rust:
Baixando uma página da web

Como fazer:

// Adicione a crate reqwest ao seu Cargo.toml
// [dependencies]
// reqwest = "0.11"

use reqwest;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
    let url = "http://example.com";
    let res = reqwest::get(url).await?;

    println!("Status: {}", res.status());
    println!("Headers:\n{:#?}", res.headers());
    let body = res.text().await?;
    println!("Body:\n{}", body);

    Ok(())
}

Saída de exemplo:

Status: 200 OK
Headers:
{
    "content-type": "text/html; charset=UTF-8",
    ...
}
Body:
<!doctype html>
...

Aprofundando

Baixar páginas da web é fundamental desde que a internet entrou em uso. No Rust, a crate reqwest se destaca por oferecer uma interface simples e segura. Há alternativas, como hyper (mais baixo nível) e curl (envolve ligação com C), mas reqwest é a escolha amigável. Internamente, reqwest usa tokio para assincronia e hyper para HTTP, mostrando como a comunidade Rust constrói abstrações poderosas sobre blocos de construção sólidos.

Veja também: