cURL → C#
.NET API Code Generator

cURL zu C# Konverter (.NET HttpClient, RestSharp & Flurl) Entwickler-Leitfaden

Konvertieren Sie cURL-Befehlszeilenanforderungen in idiomatischen C#-Code mit .NET HttpClient, RestSharp oder Flurl.Http unter Berücksichtigung von asynchronen Best Practices und Connection Pooling.

100% Client-Side Privacy
Zero Server Transmission
Presets:
cURL-Befehlseingabe
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Text.Json;

using var client = new HttpClient();

using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.openai.com/v1/chat/completions");

request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "sk-proj-mockToken998877665544332211");

var jsonPayload = """
{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "system",
      "content": "You are a professional C# and .NET full-stack architect."
    },
    {
      "role": "user",
      "content": "Demonstrate modern HttpClient and RestSharp best practices."
    }
  ],
  "temperature": 0.7,
  "max_tokens": 1000
}
""";
request.Content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");

try
{
    using var response = await client.SendAsync(request);
    response.EnsureSuccessStatusCode();
    var responseBody = await response.Content.ReadAsStringAsync();
    Console.WriteLine(responseBody);
}
catch (HttpRequestException ex)
{
    Console.WriteLine($"[HTTP Request Failed] {ex.StatusCode}: {ex.Message}");
}
HTTP-Methode & Protokoll
POSTHTTPS
Ziel-Host & Route
https://api.openai.com
0 query params
Header & Payload
2 headers • BEARER Auth
JSON Payload (260 B)

100% Client-seitige Konvertierung

Die cURL-Analyse und C#-Codegenerierung läuft vollständig lokal in Ihrem Browser.

.NET 8/9 & Beliebte Frameworks

Unterstützt modernen HttpClient, RestSharp v107+, Flurl.Http und IHttpClientFactory.

Vollständige Flag- & Auth-Parität

Unterstützt Bearer-Token, Basic Auth, benutzerdefinierte Header, Formulare, Timeouts und SSL-Flags.

Technische Referenz & Architektur-Leitfaden

cURL zu C# Konverter (.NET HttpClient, RestSharp & Flurl) Entwickler-Leitfaden — Referenz-Leitfaden

Konvertieren Sie cURL-Befehlszeilenanforderungen in idiomatischen C#-Code mit .NET HttpClient, RestSharp oder Flurl.Http unter Berücksichtigung von asynchronen Best Practices und Connection Pooling.

Wichtige Parameter & Steuerelemente

targetLibrarystring

Ziel-HTTP-Client-Bibliothek für C#: Modernes .NET HttpClient, RestSharp oder Flurl.Http.

Standard: HttpClient
asyncPatternboolean

Erzeugt moderne async/await-Methodensignaturen mit optionalen CancellationToken-Parametern.

Standard: true
jsonHandlingstring

JSON-Serialisierungs-Engine für Payload- und Antwortverarbeitung (System.Text.Json vs. Newtonsoft.Json).

Standard: System.Text.Json
instantiationStylestring

Legt fest, ob HttpClient direkt instanziiert oder per IHttpClientFactory injiziert wird, um Socket-Erschöpfung zu vermeiden.

Standard: IHttpClientFactory

Profi-Tipps & Best Practices

Socket-Erschöpfung mit IHttpClientFactory verhindern

Verwenden Sie HttpClient in Schleifen niemals mit using. Jedes Verwerfen belässt TCP-Sockets im TIME_WAIT-Zustand und erschöpft freie Ports des Betriebssystems. Registrieren Sie Clients über IHttpClientFactory oder teilen Sie eine Singleton-Instanz.

Direktes Streaming mit System.Net.Http.Json nutzen

Vermeiden Sie temporäre JSON-Strings via JsonConvert.SerializeObject und verwenden Sie stattdessen PostAsJsonAsync<T>() und ReadFromJsonAsync<T>(). Diese Methoden streamen Nutzdaten direkt in Speicherpuffer und entlasten die Garbage Collection.

DNS-Änderungen über SocketsHttpHandler berücksichtigen

Setzen Sie bei Singleton-HttpClient-Instanzen SocketsHttpHandler.PooledConnectionLifetime auf TimeSpan.FromMinutes(15). Dadurch werden Verbindungen regelmäßig neu aufgebaut, sodass DNS-Aktualisierungen und Failover-Targets wirksam werden.

Flurl-Ausnahmen gezielt mit FlurlHttpException abfangen

Fangen Sie bei Flurl.Http spezifisch FlurlHttpException statt einer allgemeinen HttpRequestException ab. Dadurch erhalten Sie direkten Zugriff auf ex.StatusCode und ex.GetResponseStringAsync() zur präzisen Fehlerdiagnose.

Häufige Fallstricke & Fehlerbehebung

HttpRequestException: The SSL connection could not be established

Dieser Fehler tritt bei selbstsignierten Zertifikaten oder inkompatiblen TLS-Verschlüsselungen auf (entspricht curl -k). In Entwicklungsumgebungen kann DangerousAcceptAnyServerCertificateValidator auf dem HttpClientHandler konfiguriert werden; in Produktionsumgebungen muss die Zertifikatsprüfung aktiv bleiben.

SocketException: Normalerweise darf jede Socketadresse nur einmal verwendet werden

Verursacht durch Socket-Erschöpfung infolge wiederholter new HttpClient()-Instanziierungen. Stellen Sie auf Dependency Injection mit IHttpClientFactory oder eine statische Singleton-Instanz um.

415 Unsupported Media Type Fehler bei JSON-POST-Anfragen

Stellen Sie sicher, dass Ihre Nutzlast mit einem StringContent unter Angabe von Encoding.UTF8 und des Medientyps application/json gekapselt ist, oder nutzen Sie PostAsJsonAsync, welches den Content-Type-Header automatisch setzt.

Häufig gestellte Fragen (FAQ)

Wie wird cURL Basic Auth (-u benutzer:passwort) in C# HttpClient übersetzt?▼

Die Anmeldedaten werden Base64-kodiert und dem Authorization-Header zugewiesen: client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("benutzer:passwort")));.

Wo sollten benutzerdefinierte Header (-H) im .NET HttpClient hinzugefügt werden?▼

Anforderungsweite Header werden über client.DefaultRequestHeaders oder HttpRequestMessage.Headers.Add() hinzugefügt. Inhaltsbezogene Header wie Content-Type müssen hingegen zwingend an HttpContent.Headers angehängt werden.

Was ist der Unterschied zwischen HttpClient, RestSharp und Flurl.Http?▼

HttpClient ist der native, hochperformante .NET-Standard. RestSharp bietet ein intuitives Request/Response-Modell für schnelle Integrationen. Flurl.Http liefert einen flüssigen, verkettbaren URL-Builder mit automatischer Serialisierung und Test-Mocking.

Wie wird cURL multipart/form-data (-F schlüssel=wert -F datei=@pfad) umgesetzt?▼

Es wird in MultipartFormDataContent umgewandelt. Textfelder verwenden StringContent, während Datei-Uploads mit ByteArrayContent oder StreamContent samt Dateinamen und Content-Type eingebunden werden.

Werden cURL-Befehle oder API-Schlüssel an externe Server übertragen?▼

Nein. Die gesamte Tokenisierung, AST-Transformation und C#-Codegenerierung findet zu 100 % lokal im Browser des Clients statt. Es werden keinerlei Daten übermittelt.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →