Flurl für C# (.NET): Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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                    

Empfehlungen