Avatar ·

Comment faire une requête HTTP en Rust ?

Bonjour à tous ! J'ai commencé à étudier Rust et j'ai rencontré la tâche d'effectuer une requête HTTP. Je dois envoyer une requête GET à une API externe et obtenir une réponse JSON. J'ai essayé d'utiliser la bibliothèque standard, mais, comme je l'ai compris, elle n'a pas de client HTTP intégré.

J'ai essayé d'écrire quelque chose comme ceci :

use std::io::Read;

fn main() {
    let mut response = reqwest::blocking::get("https://api.example.com/data").unwrap();
    let mut body = String::new();
    response.read_to_string(&mut body).unwrap();
    println!("{}", body);
}

Mais j'obtiens une erreur : error[E0432]: unresolved import 'reqwest'. Apparemment, je dois ajouter une dépendance dans Cargo.toml. Comment ajouter correctement la crate reqwest ? Quelles alternatives existent ? Je suis intéressé par la version asynchrone (tokio + reqwest) et la version bloquante (simple).

J'attends un exemple fonctionnel avec gestion des erreurs, pour que le code ne panique pas en cas d'échec de la requête. De préférence avec l'analyse JSON via serde_json. Merci d'avance pour votre aide.