Rust:
Een webpagina downloaden
Hoe:
Laten we een webpagina downloaden met Rust’s reqwest
crate, die een eenvoudige, asynchrone API biedt voor het maken van HTTP-verzoeken.
Voeg eerst reqwest
en tokio
toe aan je Cargo.toml
:
[dependencies]
reqwest = "0.11"
tokio = { versie = "1", features = ["full"] }
Nu, in je Rust-code:
use reqwest;
use tokio;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let url = "http://example.com";
let res = reqwest::get(url).await?;
let lichaam = res.text().await?;
println!("Lichaam:\n{}", lichaam);
Ok(())
}
Een voorbeelduitvoer kan er zo uitzien, hoewel de daadwerkelijke inhoud kan variëren:
Lichaam:
<!doctype html>
<html>
<head>
<title>Voorbeeld Domein</title>
...
</body>
</html>
Diepere Duik
De reqwest
crate is een van de meest eenvoudige manieren om webinhoud te downloaden in Rust. Het is geëvolueerd uit eerdere HTTP-bibliotheken, en biedt zowel synchrone als asynchrone interfaces.
Alternatieven zijn onder andere lager niveau bibliotheken zoals hyper
(die reqwest
zelf onder de motorkap gebruikt), of het gebruik van curl
bindings voor Rust.
Belangrijke implementatiestappen voor het downloaden van een pagina zijn het maken van een HTTP GET-verzoek en het verwerken van de reactie. Asynchroon programmeren met tokio
betekent dat je app responsief blijft terwijl de netwerkoperatie wordt voltooid.