Rust:
Å sende en HTTP-forespørsel
Slik gjør du:
Rust har ikke innebygget støtte for å sende HTTP-forespørsler, men reqwest
-biblioteket gjør jobben enkel. Først, inkluder det i Cargo.toml
:
[dependencies]
reqwest = "0.11"
Nå kan du sende en GET-forespørsel og håndtere responsen slik:
use reqwest;
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let response = reqwest::get("https://www.example.com").await?;
println!("Status for vår henvendelse: {}", response.status());
println!("Innholdet: {}", response.text().await?);
Ok(())
}
Dette vil gi deg statuskoden og innholdet fra example.com
.
Dypdykk
Før i tiden, brukte vi biblioteket hyper
for lavnivå HTTP-operasjoner i Rust. reqwest
bygger videre på hyper
, men gir en høyere-nivå API som er lettere å bruke. Alternativer inkluderer ureq
eller surf
, avhengig av behovet for asynkronitet og andre funksjoner.
reqwest
støtter asynkrone operasjoner med tokio
-runtime. Dette er viktig for å skrive moderne, effektive applikasjoner som kan utføre flere oppgaver parallelt.
Når du sender en HTTP-forespørsel, bygger klienten en komplett HTTP-versjon av meldingen, inkludert headers og payload, og utfører et nettverkskall for å sende den til serveren. Responsen blir deretter behandlet av klienten.