Einen funktionierenden API-Aufruf weiterverwenden
Ein curl-Befehl ist praktisch zum Testen. Für einen wiederkehrenden Import, ein Skript im Repository oder einen Aufruf im Frontend brauchst du jedoch den passenden Bibliotheksaufruf. Der Konverter übernimmt die Anfragebestandteile und macht Unterschiede der Zielumgebung sichtbar. Er führt weder den Befehl noch den generierten Code aus.
Erst die Laufzeit wählen, dann den Code übernehmen
Für Skripte eignet sich Python mit Requests; installiere das Paket mit pip install requests. Der Body wird als UTF-8-Bytes übergeben. PHP benötigt die cURL-Erweiterung. JavaScript verwendet Fetch im Browser oder in einer passenden Node.js-Umgebung.
Die Ausgabe ist ein Ausgangspunkt für deine Anwendung. Ergänze benötigte Zeitlimits und Fehlerbehandlung. Requests kann Proxy- und .netrc-Einstellungen aus der Umgebung verwenden; auch die installierte libcurl-Version kann das Verhalten des PHP-Codes beeinflussen.
curl in Python oder JavaScript umwandeln
Füge genau einen vollständigen HTTP- oder HTTPS-Aufruf ein, wähle die Sprache und prüfe Methode, URL und Body. Danach kannst du den Code kopieren oder herunterladen. Die Umwandlung läuft lokal im Browser.
Nutze POSIX-Anführungszeichen, etwa beim Export „Copy as cURL (bash)“. Ersetze Variablen und Kommandoersetzungen zuvor durch konkrete Werte. Datei-Uploads, Multipart-Formulare und nicht unterstützte Optionen erzeugen eine Fehlermeldung statt unvollständiger Ausgabe.
Warum Fetch trotz funktionierendem curl scheitern kann
CORS wird vom Browser durchgesetzt. Ein Konverter kann diese Regeln nicht umgehen. Browserverwaltete Header werden in der Fetch-Ausgabe ausgelassen und einzeln genannt. Mit credentials: omit werden auch vorhandene Browser-Cookies nicht automatisch mitgesendet.
Ohne -L verwendet Fetch manuelle Weiterleitungen, die im Browser eine undurchsichtige Antwort liefern können. Mit -L hängen Methodenwechsel und die Weitergabe von Zugangsdaten von der Bibliothek ab. Prüfe die Weiterleitungskette vor dem Einsatz.
Mehrfach vorkommende Formularfelder behalten
Beide tag-Werte bleiben erhalten. --data-urlencode kodiert das Leerzeichen; Requests erhält den fertigen Body. Ein Dictionary würde gleichnamige Schlüssel leicht überschreiben.
curl 'https://example.com/api/tags' --data-urlencode 'tag=cloud hosting' --data-urlencode 'tag=linux'import requests
url = "https://example.com/api/tags"
headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
body = "tag=cloud%20hosting&tag=linux".encode("utf-8")
response = requests.request(
method="POST",
url=url,
headers=headers,
data=body,
allow_redirects=False,
verify=True,
)
print(response.status_code)
print(response.text)
Welche curl-Option macht was?
| Option | Umsetzung |
|---|---|
URL / --url | Eine vollständige HTTP- oder HTTPS-URL |
-X / --request | Explizite HTTP-Methode |
-H / --header | Headername und Wert; doppelte oder leere Angaben prüfen |
-d / --data / --data-raw / --data-binary | Inline-Body mit erhaltener Reihenfolge mehrerer Datenargumente |
--data-urlencode / -G | Werte kodieren; mit -G an die Query anhängen |
--json | JSON-Text erhalten und JSON-Standardheader ergänzen |
-u / --user | Basic Auth mit username:password |
-L / -I / -k | Weiterleitungen, HEAD und TLS-Prüfung; -k nicht mit Fetch |
-b / -A / -e | Cookie, User-Agent und Referer unterliegen Browserregeln |
--compressed / -s / -S / -v / -i | Dekomprimierung durch die Bibliothek; keine Nachbildung der Terminalanzeige |
Fragen zur Umwandlung
Kann ich eine Anfrage aus den Entwicklertools übernehmen?
Ja, als einzelnen POSIX-kompatiblen curl-Aufruf mit unterstützten Optionen. Verwende die bash-Variante. Entferne beanstandete Optionen erst, wenn du ihre Wirkung geprüft hast.
Wird die API beim Einfügen aufgerufen?
Nein. Das Werkzeug liest nur den Text im Browser und erzeugt Code. Es testet weder Erreichbarkeit noch Zugangsdaten.
Bleiben große Zahlen im JSON unverändert?
Der JSON-Body wird als Text übernommen. Zahlen, Leerzeichen und doppelte Schlüssel werden bei der Umwandlung nicht neu serialisiert. --json prüft die JSON-Syntax nicht.
Warum fehlt ein Header im Fetch-Code?
Vom Browser verwaltete Header werden mit Hinweis ausgelassen. Content-Length berechnet die HTTP-Bibliothek neu. Ist ein solcher Header zwingend nötig, prüfe Python oder PHP als Ziel.
Kann ich das Ergebnis ins Repository kopieren?
Prüfe vorher enthaltene Tokens, Passwörter und Cookies. Die Ausgabe enthält die eingegebenen Werte. Passe außerdem Zeitlimits, Umgebungsvariablen und Fehlerbehandlung an dein Projekt an.
