Rust:
Verkkosivun lataaminen
How to: (Kuinka tehdä:)
Rustissa web-sivun lataaminen onnistuu usealla tavalla, mutta tässä käytämme reqwest
-kirjastoa, joka on helppokäyttöinen ja tehokas.
// Lisää ensin Cargo.toml-tiedostoosi riippuvuudeksi reqwest
reqwest = "0.11"
// Sitten kirjoita koodisi:
use reqwest;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let body = reqwest::get("https://www.rust-lang.org/")
.await?
.text()
.await?;
println!("Web-sivun sisältö:\n{}", body);
Ok(())
}
Esimerkin tulosteena on ladatun sivun HTML-koodi konsolissa.
Deep Dive (Syväsykellus):
Historiallisesti tiedon lataamiseen verkosta käytettiin Rustissa hyper
-kirjastoa, joka on edelleen reqwest
-kirjaston ytimessä. Vaihtoehtoja reqwest
ille ovat curl
ja hyper
, mutta näiden käyttö on monimutkaisempaa. reqwest
käyttää sisäisesti asynkronista koodia hyödyntääkseen Rustin async
-odotustekniikoita maksimaalisen suorituskyvyn saavuttamiseksi. Kirjasto hoitaa myös monet HTTP-protokollan nitty-grittyt, kuten yhteydenhallinnan ja virheenkäsittelyn.