Rust:
Een HTTP-verzoek verzenden
Hoe:
Om een GET-verzoek in Rust te versturen, gebruiken we de reqwest
crate. Voeg deze eerst toe aan je Cargo.toml
:
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
Roer nu wat asynchrone Rust-code op:
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!("Reactie: {}", response_text);
Ok(())
}
Een voorbeelduitvoer kan er zo uitzien:
Reactie: {"sleutel": "waarde", "hallo": "wereld"}
Dit is alles wat nodig is om een eindpunt te raken met een GET-verzoek!
Diepe Duik
HTTP-verzoeken zijn zo oud als de weg naar Rome in internetjaren. Ze vormen de ruggengraat van webgebaseerde communicatie. Rust gebruikt crates zoals reqwest
omdat het geen web-specifieke taal is – flexibiliteit is cruciaal. reqwest
is gebouwd op hyper
, wat snel en low-level is, maar reqwest
voegt daar gebruiksgemak aan toe.
Alternatieven voor reqwest
? Zeker. hyper
voor de snelheidsduivels, surf
als je van asynchrone Rust houdt of ureq
voor eenvoud – geen asynchroon gedoe nodig.
Onder de motorkap, wanneer je een HTTP-verzoek verzendt, doet Rust veel wat elke taal zou doen: een TCP-verbinding tot stand brengen, een geformatteerd HTTP-verzoek verzenden en de ruwe reactie interpreteren. Asynchrone afhandeling van deze verzoeken is waar Rust uitblinkt, waardoor je andere dingen kunt doen terwijl je wacht op het antwoord van de server.