HTTP-Client für C# (.NET): Top-Bibliotheken für die Arbeit mit Webanfragen
In der modernen Entwicklung auf der .NET-Plattform ist die Interaktion mit Webdiensten und APIs eine der zentralen Aufgaben. Die Wahl des richtigen HTTP-Clients kann den Code erheblich vereinfachen, seine Lesbarkeit und Leistung verbessern. In diesem Artikel betrachten wir die vier besten Bibliotheken für die Arbeit mit HTTP in C#: vom integrierten HttpClient bis zu den spezialisierten Lösungen RestSharp, Flurl und Refit. Das Material ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich, die ihre Projekte optimieren möchten.
1. HttpClient — integrierter .NET-Standard
HttpClient ist die Hauptklasse aus dem Namensraum System.Net.Http, die in allen .NET-Versionen ab 4.5 verfügbar ist. Sie erfordert keine Installation zusätzlicher Pakete und bietet vollständige Kontrolle über den Prozess des Sendens von Anfragen.
Wesentliche Merkmale:
- Unterstützung asynchroner Operationen (async/await).
- Native Arbeit mit Streams für das Herunterladen großer Dateien.
- Flexible Konfiguration von Headern, Timeouts, Proxys.
- Integration mit
IHttpClientFactoryzur Verwaltung des Lebenszyklus (empfohlen in ASP.NET Core).
Beispiel für die grundlegende Verwendung:
using System;using System.Net.Http;using System.Threading.Tasks;
class Program{ static async Task Main(string[] args) { using var client = new HttpClient(); client.BaseAddress = new Uri("https://api.github.com"); client.DefaultRequestHeaders.Add("User-Agent", "C# App");
HttpResponseMessage response = await client.GetAsync("/repos/dotnet/core"); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); Console.WriteLine(content); } }}Wann verwenden: für einfache Anfragen, wenn keine komplexe Fehlerbehandlung oder Serialisierung erforderlich ist. Ideal geeignet für Microservices und Hintergrundaufgaben.
2. RestSharp — Einfachheit und Komfort
RestSharp (Installation über NuGet: Install-Package RestSharp) ist eine der beliebtesten Drittanbieter-Bibliotheken für .NET. Sie abstrahiert die Arbeit mit HTTP, bietet eine fluent-Schnittstelle und automatische Serialisierung/Deserialisierung von JSON und XML.
Vorteile:
- Automatische Umwandlung von Antworten in C#-Objekte.
- Integrierte Unterstützung für Authentifizierung (Basic, OAuth, JWT).
- Komfortable Arbeit mit Anforderungsparametern (Query, Header, Body).
- Unterstützung für Datei-Uploads (multipart/form-data).
Beispiel mit RestSharp:
using RestSharp;using System;
class GithubClient{ public async Task<string> GetRepoInfo(string owner, string repo) { var client = new RestClient("https://api.github.com"); var request = new RestRequest($"/repos/{owner}/{repo}", Method.Get); request.AddHeader("User-Agent", "RestSharpDemo");
var response = await client.ExecuteAsync(request); if (response.IsSuccessful) { return response.Content; } else { throw new Exception($"Fehler: {response.StatusCode}"); } }}Wann verwenden: für die schnelle Entwicklung von REST-API-Clients, wenn Einfachheit des Codes und ein Minimum an manueller Konfiguration wichtig sind.
3. Flurl — Fluent-Stil und Methodenverkettung
Flurl (NuGet: Install-Package Flurl.Http) ist eine Bibliothek, die HTTP-Anfragen wie Methodenketten aussehen lässt. Sie harmoniert ideal mit LINQ und asynchronen Operationen.
Besonderheiten:
- Lesbare Syntax:
url.AppendPathSegment(...).SetQueryParams(...).GetJsonAsync()