curl in C konvertieren
curl2code konvertiert curl-Befehle in C-Code unter Verwendung von libcurl. Die Konvertierung läuft in Ihrem Browser via WebAssembly für vollständige Privatsphäre. Für Rust schauen Sie sich unseren curl zu Rust Konverter an. Für Go siehe curl zu Go. Unten finden Sie praktische C-Beispiele mit ordnungsgemäßer Speicherverwaltung.
So kopieren Sie curl aus Ihrem Browser
- 1
DevTools öffnen
Drücken Sie F12 oder Ctrl+Shift+I, um die Entwicklertools Ihres Browsers zu öffnen.
- 2
Zum Reiter Netzwerk gehen
Klicken Sie auf den Reiter Netzwerk und führen Sie die Aktion aus, die den HTTP-Request auslöst.
- 3
Als cURL kopieren
Rechtsklick auf den Request → Kopieren → Als cURL kopieren. Dann oben einfügen.
Häufig gestellte Fragen (FAQ)
Was ist libcurl?
libcurl ist die C-Bibliothek hinter dem curl-Kommandozeilen-Tool. Es ist die portabelste und am weitesten verbreitete HTTP-Client-Bibliothek überhaupt und unterstützt über 25 Protokolle. Sie wird von Tausenden von Anwendungen und eingebetteten Systemen verwendet. Fügen Sie sie über Ihren System-Paketmanager hinzu oder verlinken Sie sie statisch. curl2code generiert libcurl-C-Code unter Verwendung des Easy-Interface.
libcurl Easy vs. Multi Interface — was sollte man verwenden?
Das Easy-Interface (curl_easy_*) ist für einzelne synchrone Übertragungen gedacht — einfach und unkompliziert. Das Multi-Interface (curl_multi_*) ermöglicht nicht-blockierende, gleichzeitige Übertragungen in einem einzigen Thread. Verwenden Sie Easy für Skripte und einfache Tools, Multi für Hochleistungsanwendungen. Für eine C-ähnliche Sprache auf höherer Ebene siehe curl zu Rust.
Wie wird die Authentifizierung mit libcurl gehandhabt?
Für Bearer: Setzen Sie einen benutzerdefinierten Header mit curl_slist_append(headers, "Authorization: Bearer token"). Für Basic-Auth: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl kodiert Basic-Auth-Anmeldedaten automatisch. curl2code konvertiert -u und Header-Flags in die korrekten C-API-Aufrufe.
Wie sendet man Multipart-Form-Daten mit libcurl?
Verwenden Sie die MIME-API (libcurl 7.56+): curl_mime_init() zum Erstellen einer MIME-Struktur, curl_mime_addpart() für jedes Feld, curl_mime_name() und curl_mime_filedata() für Datei-Uploads. Setzen Sie dies mit CURLOPT_MIMEPOST. Geben Sie den Speicher mit curl_mime_free() frei.
Wie werden Fehler mit libcurl gehandhabt?
Jede curl_easy_* Funktion gibt einen CURLcode zurück — prüfen Sie diesen gegen CURLE_OK. Verwenden Sie curl_easy_strerror(code) für menschenlesbare Nachrichten. Setzen Sie CURLOPT_ERRORBUFFER für detaillierte Fehler-Strings. Rufen Sie den HTTP-Status mit curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code) ab.
Wie wird der Speicher mit libcurl verwaltet?
Rufen Sie immer curl_easy_cleanup() auf, wenn Sie mit einem Handle fertig sind. Geben Sie Header-Listen mit curl_slist_free_all() frei. Geben Sie MIME-Strukturen mit curl_mime_free() frei. Verwalten Sie bei Write-Callbacks Ihre eigene Pufferallokation. Rufen Sie curl_global_cleanup() einmal beim Programmende auf. Das Versäumnis, Ressourcen freizugeben, führt zu Speicherlecks.
Wie setzt man Timeouts mit libcurl?
Setzen Sie CURLOPT_CONNECTTIMEOUT für den Verbindungs-Timeout und CURLOPT_TIMEOUT für die gesamte Übertragungszeit (beides in Sekunden). Für Millisekunden-Präzision verwenden Sie CURLOPT_CONNECTTIMEOUT_MS und CURLOPT_TIMEOUT_MS. Dies sind exakt dieselben Optionen, die das curl-CLI mit --connect-timeout und --max-time verwendet.
Wie konfiguriert man einen Proxy mit libcurl?
Setzen Sie CURLOPT_PROXY auf die Proxy-URL: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Für SOCKS5: Setzen Sie CURLOPT_PROXYTYPE auf CURLPROXY_SOCKS5. Für Proxy-Auth: CURLOPT_PROXYUSERPWD. libcurl berücksichtigt auch die Umgebungsvariable http_proxy.
Wie sendet man eine POST-Anfrage mit JSON-Body in C?
Konvertieren Sie einen curl POST Befehl wie curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL mit curl2code nach C. Der generierte Code verwendet curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code erkennt automatisch -d/--data Flags mit JSON Inhalt und setzt den entsprechenden Content-Type Header im libcurl Code.
Wie fügt man eine Bearer Token Autorisierung in C hinzu?
Übergeben Sie curl -H "Authorization: Bearer YOUR_TOKEN" URL an curl2code und es generiert libcurl Code mit dem Auth Header: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code erkennt Bearer Tokens sowohl in -H "Authorization: Bearer ..." als auch in --oauth2-bearer Flags. Für Basic auth verwenden Sie -u user:pass.
Wie setzt man den Content-Type Header in C?
curl2code konvertiert curl -H "Content-Type: application/json" URL in libcurl Code mit dem richtigen Header: curl_slist_append(headers, "Content-Type: application/json"). Bei -d Daten verwendet curl standardmäßig application/x-www-form-urlencoded; bei -F Formular-Uploads wird multipart/form-data verwendet. curl2code ordnet beides der korrekten libcurl API zu.
Nützliche Links
curl-Anleitungen
curl-Fehlercodes
Jeden curl-Exit-Code nachschlagen — Ursachen, Lösungen und Debugging-Tipps.
Dateien mit curl herunterladen
Dateien mit -o, -O speichern, Weiterleitungen folgen, Downloads fortsetzen und mehr.
SSL, TLS & Proxy
Zertifikate, TLS-Versionen, HTTP/SOCKS-Proxys und benutzerdefiniertes DNS konfigurieren.