Flurl für C# (.NET): Komplettguide mit Beispielen
Flurl ist eine moderne, elegante Bibliothek für .NET, die einen flüssigen URL-Builder und einen HTTP-Client vereint. Sie wurde entwickelt, um die Arbeit mit HTTP-Anfragen so einfach, lesbar und bequem wie möglich zu gestalten. Statt umständlichem Code mit HttpClient, UriBuilder und vielen String-Verkettungen bietet Flurl eine prägnante und ausdrucksstarke Syntax, die an Methodenverkettungen in LINQ erinnert.
Warum Flurl? Das Hauptproblem des standardmäßigen HttpClient ist seine Ausführlichkeit. Um eine einfache GET-Anfrage mit Parametern und Headern zu senden, müssen 10-15 Zeilen Code geschrieben werden. Flurl reduziert dies auf 2-3 Zeilen und macht den Code selbstdokumentierend. Darüber hinaus löst Flurl das Problem der sicheren URL-Erstellung: Es kodiert Parameter automatisch, verarbeitet Pfade und Query-Strings und verhindert Fehler durch falsches Escaping von Zeichen.
Die Bibliothek eignet sich ideal für alle Szenarien, die eine Interaktion mit REST-APIs erfordern: von einfachen mobilen Apps bis hin zu komplexen Unternehmenssystemen. Flurl unterstützt alle wichtigen HTTP-Methoden, JSON-Verarbeitung, Datei-Uploads, Timeouts, Wiederholungsversuche und vieles mehr. Sie ist vollständig asynchron und kompatibel mit .NET Standard 2.0+, sodass sie in .NET Framework, .NET Core und .NET 5/6/7/8 verwendet werden kann.
Installation
Flurl kann über den NuGet Package Manager installiert werden. Für die Arbeit mit HTTP-Anfragen wird das Paket Flurl.Http benötigt, das auch Flurl (den URL-Builder) enthält.
Über die .NET CLI:
dotnet add package Flurl.Http
Über die Package Manager Console:
Install-Package Flurl.Http
Über Visual Studio: Rechtsklick auf das Projekt → Manage NuGet Packages → nach "Flurl.Http" suchen → Installieren.
Wenn Sie nur den URL-Builder ohne HTTP-Client benötigen, können Sie Folgendes installieren:
dotnet add package Flurl
Schnellstart
Ein minimales Arbeitsbeispiel – Daten von einer öffentlichen API abrufen und auf der Konsole ausgeben:
using Flurl.Http;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// GET-Anfrage an eine JSON-API
var response = await "https://jsonplaceholder.typicode.com/posts/1"
.GetJsonAsync<dynamic>();
Console.WriteLine($"Title: {response.title}");
Console.WriteLine($"Body: {response.body}");
}
}
Dieser Code sendet eine GET-Anfrage, deserialisiert die JSON-Antwort automatisch in ein dynamisches Objekt und gibt die Felder aus. Beachten Sie: Flurl erlaubt es, Methoden direkt auf einem URL-String aufzurufen – das ist der "fluent"-Stil.
Wichtige Methoden und Klassen
1. Url.Combine() – Sicheres Zusammenfügen von URLs
Signatur: public static string Combine(params string[] parts)
Funktion: Fügt mehrere URL-Teile zusammen und fügt/entfernt automatisch überflüssige Schrägstriche. Verhindert doppelte Schrägstriche.
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() – Flüssiges Hinzufügen von Parametern
Signatur: public static string SetQueryParams(this string url, object values)
Funktion: Fügt einer URL Query-Parameter aus einem anonymen Objekt oder Dictionary hinzu. Kodiert Werte automatisch.
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 Auch in der Bibliothek
Arbeiten mit ZIP-Archiven in PHP: vollständige Anleitung zu ZipArchive
PDF-Berichte in C++ generieren: Die Bibliothek libharu und mehr
QR-Code-Generator in Rust: Erstellung und Integration in Webanwendungen
NLog C# (.NET): Komplettanleitung mit Beispielen
Erstellung von CLI-Anwendungen in TypeScript: Überblick über Frameworks und Tools