Vom Terminal ins Projekt

curl in Anwendungscode umwandeln

Der API-Aufruf funktioniert im Terminal? Übernimm ihn als Python-Skript, Fetch-Aufruf oder PHP-Code in dein Projekt und prüfe dabei Header, Body und Laufzeitverhalten.

curlAnfragecode
Umwandlung im Browser
01

Füge eine HTTP-Anfrage ein. Anführungszeichen und Zeilenfortsetzungen mit Backslash folgen der POSIX-Syntax.

POSTexample.com3 Header
02
async function main() {
  const response = await fetch("https://example.com/api/messages", {
    method: "POST",
    headers: [
      ["Authorization", "Bearer YOUR_TOKEN"],
      ["Content-Type", "application/json"],
      ["Accept", "application/json"]
    ],
    body: "{\"message\":\"Hello from curl\",\"enabled\":true}",
    redirect: "manual",
    credentials: "omit"
  });
  console.log(response.status);
  console.log(await response.text());
}

main().catch(console.error);

Browser-Fetch oder Node.js 18+

Vor dem Ausführen prüfen

  • Die Umwandlung sendet keine Anfrage. Der Code enthält URL, Header und Zugangsdaten aus der Eingabe. Prüfe ihn vor dem Teilen.
  • Browser-Fetch unterliegt CORS. Cookies werden mit credentials: omit nicht automatisch gesendet. Konfiguriere Zugangsdaten bei Bedarf bewusst. Manuelle Weiterleitungen können undurchsichtige Antworten liefern.

Ohne Anmeldung. Keine Befehlsausführung. Die Eingabe wird im Browser verarbeitet.

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?

OptionUmsetzung
URL / --urlEine vollständige HTTP- oder HTTPS-URL
-X / --requestExplizite HTTP-Methode
-H / --headerHeadername und Wert; doppelte oder leere Angaben prüfen
-d / --data / --data-raw / --data-binaryInline-Body mit erhaltener Reihenfolge mehrerer Datenargumente
--data-urlencode / -GWerte kodieren; mit -G an die Query anhängen
--jsonJSON-Text erhalten und JSON-Standardheader ergänzen
-u / --userBasic Auth mit username:password
-L / -I / -kWeiterleitungen, HEAD und TLS-Prüfung; -k nicht mit Fetch
-b / -A / -eCookie, User-Agent und Referer unterliegen Browserregeln
--compressed / -s / -S / -v / -iDekomprimierung 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.

Dokumentation: curl · Requests · Fetch