Avatar ·

Comment faire une requête HTTP en C# ?

Bonjour collègues !

J'ai rencontré une tâche apparemment triviale : effectuer une requête HTTP vers une API externe depuis une application console .NET 6. J'ai lu plusieurs tutoriels, mais les exemples sont disparates : certains utilisent HttpClient, d'autres WebClient (obsolète ?), et d'autres encore RestSharp. Je voudrais comprendre l'approche moderne et correcte.

J'ai essayé d'écrire une simple requête GET avec HttpClient, mais l'application se bloque. Voici le code :
var client = new HttpClient();
var response = await client.GetAsync("https://api.github.com/zen");
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);

Je l'exécute dans la méthode Main (sans async), et j'obtiens un avertissement indiquant que le code asynchrone n'est pas attendu. J'ai essayé d'ajouter .Result — un deadlock s'est produit. Je ne sais pas non plus s'il faut appeler Dispose() pour HttpClient et comment gérer correctement les erreurs (timeout