HTTP-Client für C# (.NET): Top-Bibliotheken für die Arbeit mit Webanfragen

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

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 IHttpClientFactory zur 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()

Empfehlungen