Flurl pour C# (.NET) : guide complet avec exemples
Flurl est une bibliothèque moderne et élégante pour .NET, combinant un constructeur d'URL fluide et un client HTTP. Elle est conçue pour rendre le travail avec les requêtes HTTP aussi simple, lisible et pratique que possible. Au lieu d'un code volumineux avec HttpClient, UriBuilder et de nombreuses concaténations de chaînes, Flurl propose une syntaxe concise et expressive, rappelant les chaînes de méthodes en LINQ.
Pourquoi utiliser Flurl ? Le principal problème du HttpClient standard est sa verbosité. Pour envoyer une simple requête GET avec des paramètres et des en-têtes, il faut écrire 10 à 15 lignes de code. Flurl réduit cela à 2 ou 3 lignes, rendant le code auto-documenté. De plus, Flurl résout le problème de la construction sécurisée des URL : il encode automatiquement les paramètres, gère les chemins et les chaînes de requête, évitant ainsi les erreurs liées à un mauvais échappement des caractères.
La bibliothèque est idéale pour tous les scénarios nécessitant une interaction avec une API REST : des applications mobiles simples aux systèmes d'entreprise complexes. Flurl prend en charge toutes les méthodes HTTP principales, le travail avec JSON, le téléchargement de fichiers, les timeouts, les tentatives de répétition et bien plus encore. Elle est entièrement asynchrone et compatible avec .NET Standard 2.0+, ce qui permet de l'utiliser dans .NET Framework, .NET Core et .NET 5/6/7/8.
Installation
Flurl peut être installé via le gestionnaire de packages NuGet. Pour travailler avec les requêtes HTTP, le package Flurl.Http est requis, qui inclut également Flurl (le constructeur d'URL).
Avec .NET CLI :
dotnet add package Flurl.Http
Avec la console du gestionnaire de packages :
Install-Package Flurl.Http
Avec Visual Studio : Clic droit sur le projet → Gérer les packages NuGet → rechercher "Flurl.Http" → Installer.
Si vous avez uniquement besoin du constructeur d'URL sans le client HTTP, vous pouvez installer :
dotnet add package Flurl
Démarrage rapide
Un exemple minimal fonctionnel : récupérer des données depuis une API publique et les afficher dans la console :
using Flurl.Http;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Requête GET vers une API JSON
var response = await "https://jsonplaceholder.typicode.com/posts/1"
.GetJsonAsync<dynamic>();
Console.WriteLine($"Titre : {response.title}");
Console.WriteLine($"Contenu : {response.body}");
}
}
Ce code effectue une requête GET, désérialise automatiquement la réponse JSON en un objet dynamique et affiche les champs. Remarquez que Flurl permet d'appeler des méthodes directement sur une chaîne d'URL — c'est ce qu'on appelle le style "fluent".
Méthodes et classes principales
1. Url.Combine() — combinaison sécurisée d'URL
Signature : public static string Combine(params string[] parts)
Fonction : Combine plusieurs parties d'URL en ajoutant ou supprimant automatiquement les barres obliques superflues. Évite la duplication des barres obliques.
using Flurl;
string fullUrl = Url.Combine("https://api.example.com", "/v1/", "users", "/123");
Console.WriteLine(fullUrl); // https://api.example.com/v1/users/123
2. Url.SetQueryParams() — ajout fluide de paramètres
Signature : public static string SetQueryParams(this string url, object values)
Fonction : Ajoute des paramètres de requête à l'URL à partir d'un objet anonyme ou d'un dictionnaire. Encode automatiquement les valeurs.
using Flurl;
string url = "https://api.example.com/search"
.SetQueryParams(new { q = "hello world", page = 1, limit = 10 });
Console.WriteLine(url);
// https://api.example.com/se Aussi dans la bibliothèque
Travailler avec Kafka en Rust : les bibliothèques rdkafka et Franz
Nodemailer JavaScript (Node.js) : guide complet avec exemples
Configuration des applications Java : bibliothèques et outils pour la gestion des paramètres