araç köşesi

curl-Befehl in Code umwandeln

Wandeln Sie einen aus dem Browser oder einer API-Doku kopierten curl-Befehl in PHP-, Python- (requests) oder JavaScript-Code (fetch) um

Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.

So funktioniert es

API-Dokumentationen und die Browserfunktion „Als cURL kopieren“ liefern Anfragen als curl-Befehl; dieses Werkzeug macht daraus Code, den Sie in Ihr eigenes Programm übernehmen. Ein Beispiel: curl -X POST https://api.example.com/v1/orders mit dem Header -H "Content-Type: application/json" und dem Body -d '{"produkt": "heft", "menge": 2}'. Bei Python entstehen die Variablen url, headers und data sowie der Aufruf requests.post(url, headers=headers, data=data); in PHP wird dieselbe Anfrage zu CURLOPT_HTTPHEADER und CURLOPT_POSTFIELDS in curl_setopt_array. Umgekehrte Schrägstriche (\) am Zeilenende, einfache und doppelte Anführungszeichen, $'…'-Zeichenketten und die ^-Maskierung des Windows-cmd-Formats werden aus dem Befehl selbst gelesen, Sie müssen ihn nicht bereinigen. -u Benutzer:Passwort wird zur Anmeldung, -F-Felder werden zu Formulardaten, -G hängt die Daten an die Adresse, -k schaltet die Zertifikatsprüfung ab, -m setzt ein Zeitlimit. Optionen ohne Einfluss auf die Anfrage wie -s, -v und -o werden übersprungen und im Hinweis genannt. Die Umwandlung läuft in Ihrem Browser; Passwörter, Cookies und Zugriffsschlüssel aus dem Befehl gehen an keinen Server.

Dieses Werkzeug ist auch als curl in php umwandeln, curl to php, curl to python, curl befehl in python umwandeln, curl in javascript fetch, curl konverter online, curl in code umwandeln bekannt.

Was ist cURL?

cURL ist ein kostenloses Kommandozeilenprogramm, das Anfragen an Webadressen sendet; der Name steht für „client URL“. Es ist in Windows 10, macOS und Linux vorinstalliert. API-Dokumentationen zeigen Beispielanfragen als curl-Befehl, weil eine Zeile Adresse, Methode, Header und Daten zusammen zeigt. Die cURL-Erweiterung von PHP baut auf derselben Bibliothek libcurl auf.

Was ist HTTP-Header?

Ein HTTP-Header ist eine Name-Wert-Zeile, die getrennt vom Inhalt der Anfrage mitgeschickt wird: Content-Type nennt das Format des Bodys, Authorization die Zugangsdaten, Accept den erwarteten Antworttyp. Im curl-Befehl steht jeder Header als -H "Name: Wert". Im Code wird er in PHP zum Array-Eintrag, in Python zum Dictionary-Schlüssel und bei fetch zur Eigenschaft des headers-Objekts.

Drei Dinge, die curl stillschweigend erledigt – deshalb hat der Code zusätzliche Zeilen

curl erledigt einiges, das im Befehl nicht steht. Mit -d wechselt es die Methode zu POST und ergänzt ohne eigenen Header Content-Type: application/x-www-form-urlencoded. Python requests und fetch tun das nicht: requests schickt einen Text-Body ganz ohne Typ, fetch kennzeichnet ihn als text/plain. Der Server kann dieselbe Anfrage dann anders auswerten. Das Werkzeug schreibt den Header deshalb ausdrücklich in den Code; der Hinweis nennt die Zahl der Header, damit die zusätzliche Zeile nicht überrascht.

Der zweite Unterschied sind Weiterleitungen. Ohne -L folgt curl keiner 301- oder 302-Antwort, requests und fetch folgen standardmäßig. Ein aus dem Browser kopierter Befehl hat meist kein -L, obwohl der Browser der Weiterleitung gefolgt ist; Python und JavaScript bekommen daher keine Zusatzeinstellung, PHP erhält CURLOPT_FOLLOWLOCATION nur bei -L. Der dritte betrifft Daten aus einer Datei: -d @daten.txt entfernt die Zeilenumbrüche, --data-binary @daten.txt behält sie. Auch diesen Unterschied übernimmt das Werkzeug.

fetch im Browser hat eine weitere Grenze: Header wie Cookie, Referer und User-Agent verwaltet der Browser selbst und ignoriert Werte aus dem Code. Derselbe Code sendet sie unter Node.js 18 und neuer. Enthält Ihr Befehl einen solchen Header, weist der Hinweis darauf hin.

Welche Sprache wählen, woher den Befehl kopieren?

Wählen Sie die Sprache Ihres Projekts; alle drei Ausgaben senden dieselbe Anfrage. Die Python-Bibliothek requests installieren Sie mit pip install requests; die PHP-Ausgabe nutzt die cURL-Erweiterung von PHP, die bei den meisten Hostern aktiv ist; fetch braucht im Browser und ab Node.js 18 keine Installation.

Um eine Anfrage einer Website nachzustellen, öffnen Sie in Chrome, Edge oder Firefox mit F12 die Entwicklertools, klicken im Tab Netzwerk mit der rechten Maustaste auf die Anfrage und wählen „Als cURL kopieren“. Unter Windows gibt es zwei Einträge, „(bash)“ und „(cmd)“; das Werkzeug liest beide. Der kopierte Befehl enthält Ihr Sitzungscookie und Ihren Zugriffsschlüssel – entfernen Sie diese Werte, bevor Sie den Code weitergeben.

  • Serverseitige PHP-Website, WordPress-Plugin → PHP (cURL)
  • Skript, Datenabruf, Automatisierung → Python (requests)
  • Webseite oder Node.js-Anwendung → JavaScript (fetch)

Häufige Fragen

Wie wandle ich einen curl-Befehl in Python um?

Fügen Sie den Befehl in das Feld ein und wählen Sie Python. Header landen im Dictionary headers, der Body in der Variablen data, -u-Zugangsdaten im Parameter auth; gesendet wird mit requests.post oder requests.get. Installieren Sie vorher die Bibliothek mit pip install requests.

Wie wandle ich curl in PHP um?

Wählen Sie PHP. Die Ausgabe nutzt curl_init und curl_setopt_array: Die Adresse wird zu CURLOPT_URL, die Header zu CURLOPT_HTTPHEADER, der Body zu CURLOPT_POSTFIELDS. Mit -F gesendete Dateien werden zu new CURLFile(…).

Funktioniert ein Befehl aus „Als cURL kopieren (cmd)“?

Ja. Die ^"-Maskierung und die ^ am Zeilenende des Windows-cmd-Formats werden aufgelöst, der Befehl wird wie im bash-Format gelesen. „Als PowerShell kopieren“ erzeugt Invoke-WebRequest, also keinen curl-Befehl; das Werkzeug liest ihn nicht.

Werden Passwörter und Cookies aus dem Befehl irgendwohin gesendet?

Nein. Die Umwandlung geschieht vollständig in Ihrem Browser; Befehl, Passwörter, Cookies und Schlüssel erreichen keinen Server. Wenn Sie den erzeugten Code teilen, entfernen Sie diese Werte vorher selbst.

Was bedeutet der Hinweis „unbekannte Optionen“?

Das Werkzeug übersetzt die curl-Optionen, die die Anfrage verändern. Eine unbekannte Option überspringt es und nennt sie im Hinweis; ihre Entsprechung tragen Sie dann selbst im Code nach. Optionen, die nur die Bildschirmausgabe von curl betreffen (-s, -v, -o), werden ebenfalls übersprungen.