cURL-Befehlsgenerator & Builder
curl-Befehle im Browser erstellen — Methode, Header, Auth und Body einstellen, fertig copierbaren Befehl sofort erhalten. Vorlagen für Bearer, POST JSON, Datei-Upload. Kostenlos, privat.
Unser Team überprüft den curl-Befehlsgenerator gegen echtes curl-Verhalten über HTTP-Methoden (GET/POST/PUT/PATCH/DELETE), Authentifizierungsschemas (Bearer, Basic, API-Key-Header), Body-Typen (rohes JSON, URL-kodiertes Formular, Multipart-Datei-Upload) und Optionen-Flags (-L, -k, -v, -i, --compressed, -o, Timeouts, Proxy) — mit shell-sicherer Single-Quote-Escaping und korrekter Query-String-Kodierung.
Was ist ein curl-Befehl?
curl ist ein Kommandozeilenwerkzeug zur Datenübertragung über HTTP und Dutzende anderer Protokolle. Ein curl-Befehl besteht aus dem Binärnamen, einer Reihe von Flags und einer URL — zum Beispiel curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'. Da curl auf praktisch jedem Linux-, macOS- und modernen Windows-System vorinstalliert ist, ist es der universelle Weg, eine API zu testen, eine Anfrage aus der Dokumentation zu reproduzieren oder einen Service innerhalb eines CI-Skripts auf Verfügbarkeit zu prüfen. Die Kürze, die es mächtig macht, macht es auch schwer zu merken — genau deshalb hilft ein visueller Builder.
Jeder curl-Befehl hat denselben Aufbau. Die Methode (-X GET, -X POST, …) legt das HTTP-Verb fest und ist standardmäßig GET. Die URL ist der Endpunkt, Query-Parameter werden nach einem ? angehängt. Header (-H 'Key: Value', wiederholbar) übertragen Metadaten wie Accept und Content-Type. Authentifizierung ist lediglich ein spezieller Header — -H 'Authorization: Bearer …' für ein Token, -u user:pass für Basic-Auth oder ein benutzerdefiniertes -H 'X-API-Key: …'. Der Body (-d für rohe oder Formulardaten, -F für Multipart und Datei-Uploads) trägt die Nutzlast. Schließlich steuern Optionen wie -L (Weiterleitungen folgen), -i (Response-Header einschließen) und -v (ausführlich) das Verhalten. Dieses Tool stellt jeden dieser Teile als Formularfeld dar und baut den Befehl live neu auf.
Nutze einen curl-Befehlsgenerator, wenn du sonst mit Quotierung kämpfen, den Content-Type-Header bei einem JSON-POST vergessen oder einen Multipart-Upload manuell zusammenstellen würdest. Der Builder erledigt shell-sicheres Single-Quote-Escaping, kodiert deinen Query-String und hängt die richtigen Header für jeden Body-Typ an — dann kopierst du einen vertrauenswürdigen Befehl. Für eine vollständige Flag-für-Flag-Referenz mit 40+ ausführbaren Beispielen, lies das begleitende curl-Cheatsheet; zum Kodieren kniffliger Query-String-Werte kannst du unseren URL-Kodierer verwenden.
Alles passiert in deinem Browser. Deine Token, Anmeldedaten, URLs und Request-Bodies werden mit clientseitigem JavaScript zusammengestellt und nie irgendwohin gesendet — so kannst du Befehle gegen echte Produktions-Endpunkte mit echten API-Schlüsseln erstellen, ohne dass dein Gerät verlassen wird.
# Plain GET — curl defaults to GET
curl https://api.example.com/users
# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
-H 'Authorization: Bearer YOUR_TOKEN'
# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}'
# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
-F 'file=@report.pdf' \
-F 'title=Q3 report' Hauptfunktionen
Visueller Anfrage-Builder
Die gesamte Anfrage als Formularfelder gestalten — Methode, URL, Query-Parameter, Header, Auth, Body und Optionen — statt sich Flag-Reihenfolge und Quotierung zu merken. Kein Raten mehr, ob die URL vor oder nach dem -d kommt.
Live-Befehl mit Kopieren & Export
Der curl-Befehl wird bei jedem Tastendruck am unteren Seitenende neu aufgebaut. Mit einem Klick in die Zwischenablage kopieren oder als .sh exportieren — ein ausführbares Shell-Skript, das direkt in ein Repo oder einen CI-Job eingefügt werden kann.
Vollständige Authentifizierungsunterstützung
Bearer-Token, Basic-Auth (-u user:pass) und benutzerdefinierte API-Key-Header, jeweils im genauen Format, das Server erwarten. Schema auswählen, Credential einfügen — der richtige Authorization- oder benutzerdefinierte Header wird generiert.
Jeder Body-Typ
Rohes JSON (mit automatisch hinzugefügtem passenden Content-Type-Header), application/x-www-form-urlencoded-Formularfelder und multipart/form-data-Uploads, bei denen jedes Feld mit dem @-Präfix auf eine Datei umgestellt werden kann.
Sechs Ein-Klick-Vorlagen
GET mit Bearer, POST JSON, Formular-Upload, Basic-Auth, Download -o und Verbose-Debug füllen das gesamte Formular mit einem Tippen aus. Starte von einer funktionierenden Anfrage für die häufigsten API-Aufgaben und passe sie an.
Mehrzeilige & einzeilige Ausgabe
Wechsle zwischen einem kompakten einzeiligen Befehl zum schnellen Einfügen und einer backslash-fortgesetzten mehrzeiligen Version, die sich in einem Skript oder Pull-Request besser lesen lässt. Derselbe Befehl, zwei Darstellungen.
100 % Browser-basierter Datenschutz
Token, URLs, Header und Request-Bodies werden vollständig clientseitig zusammengestellt und verlassen dein Gerät nie — prüfbar im Netzwerk-Tab. Sicher für Produktions-Endpunkte und Live-Credentials ohne Daten-Exposition.
Entwickelt für den DevTools-Workflow
Konzipiert für den täglichen Loop aus API-Tests und Reproduzieren von Anfragen aus Browser-DevTools „Als cURL kopieren”. Ein Konvertieren-Tab, der curl-Befehle in fetch, requests, Go, PHP, Ruby und Node.js parst, erscheint im nächsten Release.
curl-Alternativen & HTTP-Clients
HTTPie
CLI, menschenfreundliche SyntaxEin modernes CLI mit farbiger Ausgabe und kompakterer Syntax (http POST api.example.com/users name=Ada). Setzt JSON Content-Type standardmäßig. Benutzerfreundlicher für interaktive Nutzung; curl gewinnt bei Ubiquität und Skript-Portabilität.
wget
CLI, download-orientiertAm besten für rekursive Downloads und Site-Mirroring; folgt Weiterleitungen und wiederholt standardmäßig. Schwächer als curl für beliebige Methoden, benutzerdefinierte Header und API-Tests. Oft zusammen mit curl auf Linux vorinstalliert.
Postman
GUI-AnwendungEine vollständige GUI zum Aufbauen, Speichern und Teilen von Anfragen mit Collections, Environments und Team-Sync. Gut für explorative API-Arbeit; kann curl importieren/exportieren. Für schnelle Prüfungen oder CI schwerer als ein einzeiliger Befehl.
Insomnia
GUI-AnwendungEine schlankere Open-Source-Alternative zu Postman mit übersichtlichem Anfrage-Builder und curl-Import/Export. Gut für die Organisation von API-Anfragen; wie Postman mehr als nötig für einen einzelnen skriptgesteuerten Aufruf.
fetch() / requests
In-Code-HTTP-ClientsJavaScript fetch() und Python requests sind die Art, wie Aufrufe aus Anwendungscode heraus gemacht werden. Die Anfrage zuerst als curl aufbauen und verifizieren, dann übersetzen — der kommende Konvertieren-Tab generiert äquivalenten fetch-, requests- und anderen Client-Code.
curl-Befehle — Beispiele
Einfache GET-Anfrage
curl https://api.example.com/users
Ohne Method-Flag verwendet curl standardmäßig GET. Dies ist die einfachstmögliche Anfrage — eine Ressource abrufen und den Response-Body im Terminal ausgeben. Füge Query-Parameter im Builder hinzu und sie werden automatisch URL-kodiert angehängt (?page=2&limit=50).
GET mit Bearer-Token
curl https://api.example.com/me \ -H 'Authorization: Bearer YOUR_TOKEN'
Der häufigste authentifizierte Aufruf gegen eine REST-API. Die Bearer-Auth-Vorlage fügt den Authorization: Bearer …-Header für dich hinzu. Um den Inhalt eines JWT vor dem Senden zu prüfen, füge das Token in unseren JWT-Dekodierer ein.
POST mit JSON-Body
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada","role":"admin"}' Ein Standardfall für einen curl-POST-Anfrage-Generator: Der JSON-Body-Typ setzt -X POST, hängt den Content-Type: application/json-Header an und übergibt die Nutzlast mit -d. Unübersichtliche API-Antworten lassen sich danach mit unserem JSON-Formatierer aufbereiten.
POST-Formular (URL-kodiert)
curl -X POST https://api.example.com/login \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'username=ada&password=s3cret'
Klassische HTML-Formularübertragung. Jedes -d field=value-Paar wird mit & verbunden und als application/x-www-form-urlencoded gesendet. curl kodiert reservierte Zeichen URL-sicher; die Felder werden im Formular-Body-Bereich aufgebaut und das Tool stellt den String zusammen.
Multipart-Datei-Upload
curl -X POST https://api.example.com/upload \ -F 'file=@report.pdf' \ -F 'title=Q3 report'
Der curl-Datei-Upload-Befehl verwendet -F für multipart/form-data. Stelle einem Wert @ voran, um eine Datei vom Datenträger anzuhängen; Datei- und Textfelder können beliebig gemischt werden. curl setzt Multipart-Boundary und Content-Type automatisch — niemals manuell setzen.
In eine Datei herunterladen
curl -L -o archive.zip \ https://example.com/files/archive.zip
Speichere den Response-Body mit -o in eine benannte Datei; -L folgt Weiterleitungen zur eigentlichen Download-URL (häufig bei CDN- und Release-Asset-Links). Verwende -O statt -o, um den Dateinamen vom Server zu übernehmen.
Basic-Authentifizierung
curl -u ada:s3cret \ https://api.example.com/private
curl-Basic-Auth verwendet -u user:pass; curl Base64-kodiert die Anmeldedaten in einen Authorization: Basic …-Header. Basic-Auth sollte immer über HTTPS gesendet werden — Base64 ist Kodierung, keine Verschlüsselung, und ist trivial umkehrbar.
Verbose-Debug
curl -v -i https://api.example.com/health
Wenn eine Anfrage sich falsch verhält, gibt -v die vollständige Anfrage-Zeile, alle gesendeten und empfangenen Header sowie den TLS-Handshake aus; -i fügt die Response-Header in die Body-Ausgabe ein. Die erste Anlaufstelle, wenn eine API den falschen Statuscode zurückgibt.
So erstellst du einen curl-Befehl
- 1
HTTP-Methode wählen
Wähle GET, POST, PUT, PATCH, DELETE, HEAD oder OPTIONS. curl verwendet standardmäßig GET; die Auswahl von POST oder einem anderen Verb fügt
-X METHODzum generierten Befehl hinzu. Oder tippe einen Vorlagen-Chip, um Methode und passenden Body mit einem Klick zu setzen. - 2
URL und Query-Parameter eingeben
Gib die Anfrage-URL ein (z. B.
https://api.example.com/users). Füge Query-Parameter als Schlüssel/Wert-Paare hinzu — das Tool URL-kodiert sie und hängt?key=value&…automatisch an die URL an. Keine manuelle Kodierung nötig. - 3
Header und Authentifizierung hinzufügen
Füge Request-Header als Schlüssel/Wert-Paare hinzu, dann wähle ein Auth-Schema: Keins, Bearer-Token, Basic (Benutzername/Passwort) oder ein benutzerdefinierter API-Key-Header. Der richtige
Authorization- oder benutzerdefinierte Header wird im genauen Format generiert, das der Server erwartet. - 4
Request-Body festlegen
Für POST/PUT/PATCH wähle einen Body-Typ: Rohes JSON einfügen (der
Content-Type-Header wird automatisch hinzugefügt), URL-kodierte Formularfelder aufbauen oder einen Multipart-Upload zusammenstellen und ein Feld mit dem@-Präfix auf eine Datei umstellen. - 5
Optionen aktivieren
Aktiviere die benötigten Flags — Weiterleitungen folgen (
-L), unsicheres TLS (-k), ausführlich (-v), Header einschließen (-i), komprimiert (--compressed), Ausgabe in Datei (-o), Verbindungs-Timeout oder Proxy (-x). Jede Umschaltung aktualisiert den Befehl live. - 6
Kopieren, exportieren oder zurücksetzen
Kopiere den fertigen Befehl, exportiere ihn als .sh-Skript oder setze das Formular zurück. Verwende den Mehrzeilig-Schalter, um vor dem Kopieren zwischen einzeiliger und backslash-fortgesetzter Ausgabe zu wechseln.
Häufige curl-Fehler
Fehlendes -X bei einer Methode mit Body
Das Senden eines Bodys mit -d impliziert POST; wenn jedoch PUT oder PATCH benötigt wird, muss das explizit mit -X angegeben werden. Vergisst man es, wird der Body als POST gesendet und der Server gibt den falschen Status zurück oder lehnt die Anfrage ab.
# PATCH beabsichtigt, aber -d allein impliziert POST
curl -d '{"role":"admin"}' \
https://api.example.com/users/7 # Verb explizit setzen
curl -X PATCH -d '{"role":"admin"}' \
-H 'Content-Type: application/json' \
https://api.example.com/users/7 Fehlender Content-Type bei einem JSON-POST
JSON mit -d zu senden setzt NICHT den Content-Type-Header — curl verwendet standardmäßig application/x-www-form-urlencoded. Die meisten APIs können den Body dann nicht parsen und geben 400 oder 415 zurück. Den JSON-Content-Type immer anhängen (oder die JSON-Body-Vorlage verwenden, die ihn automatisch hinzufügt).
# Server sieht urlencoded, nicht JSON — 400/415
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' # JSON-Content-Type deklarieren
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Ada"}' Einfache vs doppelte Anführungszeichen beim Escaping
Innerhalb doppelter Anführungszeichen expandiert die Shell $, Backticks und !, was JSON verfälscht oder bei einem $variable in der Nutzlast bricht. Einfache Anführungszeichen geben den Body wörtlich weiter. Einfache Anführungszeichen für JSON-Bodies verwenden; auf doppelte nur in cmd.exe wechseln, das keine einfachen Anführungszeichen unterstützt.
# $name wird von der Shell zu leerem String expandiert
curl -d "{\"user\":\"$name\"}" \
https://api.example.com/users # Einfache Anführungszeichen senden den Body wörtlich
curl -d '{"user":"$name"}' \
https://api.example.com/users -d bei einer GET-Anfrage verwenden
Das Hinzufügen von -d zu einer Anfrage macht sie stillschweigend zu einem POST. Für ein GET mit Query-Parametern diese in die URL einfügen (oder -G verwenden, um die -d-Daten an den Query-String anzuhängen). -d bei einem GET ist einer der häufigsten Gründe für „mein GET funktioniert nicht”.
# -d macht dies zu einem POST, nicht zu einem GET curl -d 'page=2&limit=50' \ https://api.example.com/users
# Query-String in der URL hält es als GET curl 'https://api.example.com/users?page=2&limit=50'
Windows-Zeilenfortsetzung: ^ vs \
Der Backslash (\) setzt einen Befehl in bash, Git Bash und WSL auf die nächste Zeile fort. In cmd.exe ist das Fortsetzungszeichen das Caret (^), und PowerShell verwendet einen Backtick (`` ` ``). Ein backslash-fortgesetzter Befehl in cmd eingefügt — bricht ihn. Dieses Tool auf einzeilige Ausgabe für Windows cmd umstellen.
:: cmd.exe — Backslash ist kein Fortsetzungszeichen
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' :: cmd.exe — eine Zeile oder ^ zur Fortsetzung verwenden
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}" Leerzeichen in der URL nicht kodiert
Ein rohes Leerzeichen (oder &, #, ?) in einer URL oder einem Query-Wert bricht den Befehl — die Shell teilt das Argument und curl sieht eine abgeschnittene URL. Den Wert prozent-kodieren (Leerzeichen wird %20) oder curl mit --data-urlencode kodieren lassen. Die Query-Parameter-Felder in diesem Tool kodieren automatisch.
# Leerzeichen teilt das Argument — curl sieht zwei Args curl https://api.example.com/search?q=hello world
# Leerzeichen kodieren (oder die ganze URL in Anführungszeichen) curl 'https://api.example.com/search?q=hello%20world'
Häufige Anwendungsfälle
- REST-API-Tests
- Anfragen gegen einen REST-Endpunkt erstellen und abfeuern, ohne das Terminal zu verlassen: Methode setzen, Bearer-Token einfügen, JSON-Body senden und die Antwort lesen. Der schnellste Weg, das Verhalten einer API zu bestätigen, bevor Client-Code geschrieben wird.
- Anfrage aus Dokumentation reproduzieren
- API-Dokumentation zeigt Endpunkte und Parameter, aber selten einen vollständigen, kopierbaren Befehl. Methode, URL, Header und Auth hier eintragen und einen curl-Befehl erhalten, der direkt ausführbar ist — kein Kämpfen mit Quotierung oder fehlenden
Content-Type-Headern. - CI/CD-Smoke-Test-Skripte
- Einen curl-Befehl für einen Health-Check oder Post-Deploy-Smoke-Test generieren, dann als .sh exportieren und in eine Pipeline einfügen.
--connect-timeoutund--max-timehinzufügen, damit ein hängender Endpunkt den Build nicht blockiert, und Statuscodes mit-wprüfen. - Datei-Upload & -Download
- Einen
multipart/form-data-Upload mit-F field=@filezusammenstellen oder einen-L -o dateiname-Download aufbauen, der Weiterleitungen zu einem CDN folgt. Schwierige Dateinamen oder Query-Werte vorher mit unserem URL-Kodierer kodieren. - Webhook-Debugging
- Eine Webhook-Nutzlast wiederholen, indem derselbe JSON-Body, den der Anbieter sendet, mit den richtigen Signatur- und
Content-Type-Headern gepostet wird. Die genaue Anfrage lokal reproduzieren, um zu debuggen, warum der Handler sie abgelehnt hat. - Reproduzierbare Bug-Reports
- Einen einzelnen, in sich geschlossenen curl-Befehl in einen Bug-Report oder PR einfügen, damit jeder die genaue Anfrage reproduzieren kann — Methode, Header, Auth-Platzhalter und Body. Weit klarer als die Anfrage in Fließtext zu beschreiben.
- curl-Flags erlernen
- Sehen, wie jede Formularauswahl einem echten Flag entspricht — Basic-Auth wählen und beobachten, wie
-uerscheint; einen JSON-Body hinzufügen und beobachten, wie derContent-Type-Header angehängt wird. Eine praktische Möglichkeit, die Syntax zu erlernen, gepaart mit unserem curl-Cheatsheet. - Anfrage für Code-Konvertierung vorbereiten
- Die Anfrage zuerst als curl aufbauen und verifizieren, dann in den HTTP-Client der App übersetzen. Der kommende Konvertieren-Tab wird einen eingefügten curl-Befehl in fetch, requests, Go, PHP, Ruby und Node.js umwandeln — starte von einem curl-Befehl, der funktioniert.
curl-Flags & Syntax-Referenz
- Shell-Quotierung & Escaping
- Das Tool schließt Werte in einfache Anführungszeichen ein — in POSIX-Shells die sicherste Form, da innerhalb eines single-quoted Strings nichts expandiert wird. Ein Literal-Single-Quote innerhalb eines Wertes wird als
'\''-Sequenz ausgegeben (Anführungszeichen schließen, Backslash-Quote, Anführungszeichen erneut öffnen). Incmd.exeauf doppelte Anführungszeichen wechseln; Git Bash und WSL führen die generierten Single-Quote-Befehle unverändert aus. - -d vs --data-raw vs --data-binary
-d/--dataentfernt Zeilenumbrüche und Wagenrückläufe aus dem Body — gut fürkey=value-Paare, verlustbehaftet für mehrzeilige Inhalte.--data-rawist identisch, behandelt ein führendes@jedoch nicht als Dateinamen.--data-binarysendet Bytes exakt wie angegeben (verwende@file, um rohe Dateiinhalte hochzuladen). Alle drei implizieren POST, sofern die Methode nicht überschrieben wird.- Multipart (-F) vs URL-kodiert (-d)
-F field=valueerzeugtmultipart/form-datamit einer generierten Boundary — erforderlich für Datei-Uploads (-F file=@pfad) und gemischte Datei/Text-Formulare.-d field=valueerzeugtapplication/x-www-form-urlencoded, einen einzelnen&-verbundenen String. SetzeContent-Typefür Multipart nie manuell; curl berechnet die Boundary und setzt den Header selbst.- Auth-Header-Kodierung
- Bearer-Auth sendet
Authorization: Bearer <token>wörtlich (RFC 6750). Basic-Auth aus-u user:passwird Base64-kodiert inAuthorization: Basic <base64>übertragen — Kodierung, keine Verschlüsselung, also HTTPS verwenden. Ein API-Key ist welcher benutzerdefinierte Header auch immer der Dienst verlangt, z. B.X-API-Key: <value>. - Query-String-Kodierung
- Im Builder hinzugefügte Query-Parameter werden prozent-kodiert und als
?key=value&key2=value2angehängt. Reservierte Zeichen (Leerzeichen,&,=,#) werden maskiert, damit die URL gültig ist. Für Body-Felder, die kodiert werden müssen, übernimmt curls eigener--data-urlencodedie Kodierung zur Anfrage-Zeit. - Weiterleitungsverhalten (-L)
- Ohne
-Lgibt curl eine 301/302-Antwort aus und stoppt. Mit-Lfolgt es demLocation-Header bis zur endgültigen URL. Beachte: curl löscht denAuthorization-Header, wenn eine Weiterleitung zu einem anderen Host führt (ein Sicherheitsstandard); verwende--location-trustednur, wenn du die Implikationen verstehst. - Komprimierte Antworten
--compressedfügt einenAccept-Encoding-Header hinzu, der gzip/deflate/brotli-Unterstützung ankündigt, und dekomprimiert die Antwort transparent — spart Bandbreite. Der dekodierte Body ist identisch zu einer unkomprimierten Anfrage — reine Übertragungsoptimierung, bei den meisten API-Aufrufen sicher zu aktivieren.- Ausgabe: -o vs -O
-o dateinameschreibt den Response-Body in eine selbst benannte Datei;-Ospeichert ihn unter dem Remote-Dateinamen aus dem URL-Pfad. Beide unterdrücken die normale stdout-Ausgabe. Mit-Lkombinieren, damit Weiterleitungen zur eigentlichen Ressource aufgelöst werden, bevor die Datei geschrieben wird.
Best Practices für curl-Anfragen
- Niemals Secrets in geteilten Befehlen hartcodieren
- Ein curl-Befehl, den du in einem PR, einem Ticket oder einem Chat einfügst, wird von anderen gelesen und von Tools indexiert. Ersetze Token und Passwörter durch Platzhalter (
YOUR_TOKEN) oder referenziere eine Umgebungsvariable (-H "Authorization: Bearer $API_TOKEN"). Für lange Credentials kann curl einen Header aus einer Datei lesen mit-H @headerfile, sodass das Secret nie in der Shell-History erscheint. - --data-binary @file für binäre Nutzlasten bevorzugen
- Wenn der Body eine Datei ist, deren Bytes wichtig sind — ein Bild, eine signierte Nutzlast, JSON mit bedeutsamen Leerzeichen — verwende
--data-binary @filestatt-d @file. Einfaches-dentfernt Zeilenumbrüche und Wagenrückläufe und korrumpiert binäre und mehrzeilige Inhalte lautlos.--data-binarysendet die Datei exakt so, wie sie auf dem Datenträger liegt. - Header-Werte in Anführungszeichen einschließen
- Schließe
-H-Werte immer in Anführungszeichen ein:-H 'Content-Type: application/json'. Ohne Anführungszeichen teilt das Leerzeichen nach dem Doppelpunkt das Argument und curl sieht einen fehlgebildeten Header. Einfache Anführungszeichen verhindern auch die Expansion von$,*und anderen Sonderzeichen innerhalb des Wertes — genau das, was dieses Tool standardmäßig ausgibt. - --compressed zur Bandbreiteneinsparung verwenden
- Füge
--compressedbei API-Aufrufen und Downloads hinzu, um gzip/brotli-Kodierung anzufordern, die curl transparent dekomprimiert. Bei JSON-lastigen APIs kann dies die Übertragungsgröße um 70–90 % reduzieren, ohne die Antwort zu verändern — ein kostenloser Gewinn in Skripten, die Endpunkte wiederholt abrufen. - Timeouts in Skripten festlegen
- In jedem automatisierten Kontext
--connect-timeoutund--max-timehinzufügen, damit ein langsamer oder hängender Endpunkt eine Pipeline nicht ewig blockieren kann. Ein Health-Check mit--max-time 10schlägt schnell fehl und ermöglicht der CI weiterzumachen. Mit--retry Nkombinieren, um vorübergehende Netzwerkunterbrechungen aufzufangen, ohne sofort aufzugeben. - Mit -v verifizieren, bevor automatisiert wird
- Bevor ein curl-Befehl in ein Skript oder einen Cron-Job gebacken wird, einmal mit
-vausführen, um die genaue Anfrage-Zeile, Header und TLS-Handshake zu sehen. Der schnellste Weg, eine falsche Methode, einen fehlendenContent-Typeoder einen nicht angehängten Auth-Header zu erkennen — interaktiv debuggen, dann-vfür die Produktion entfernen.
Häufig gestellte Fragen
Was macht dieses Tool?
.sh-Skript oder wechsle zwischen einzeiliger und mehrzeiliger Ausgabe. Es ist ein curl-Befehlsgenerator für den täglichen Workflow beim Testen einer REST-API, Reproduzieren einer Anfrage aus der Dokumentation oder Einfügen eines reproduzierbaren Befehls in einen Bug-Report. Für eine ausführlichere Referenz zu den Flags selbst, sieh dir unser curl-Cheatsheet an. Werden meine Daten (Token, URLs) irgendwohin hochgeladen?
Wie sende ich eine POST-Anfrage mit JSON in curl?
curl -X POST <url> -H 'Content-Type: application/json' -d '{…}'. Zwei Dinge sind wichtig: Das Flag -d (oder --data) trägt den Body, und der Content-Type: application/json-Header teilt dem Server mit, wie er ihn parsen soll — fehlt der Header, ignorieren oder verlesen viele Frameworks die Nutzlast. Modernes curl (7.82+) bietet auch die Abkürzung --json, die Header und Body zusammen setzt. Nach dem Aufruf füge die Antwort in unseren JSON-Formatierer ein, um sie zu formatieren und zu validieren. Wie füge ich einer curl-Anfrage ein Bearer-Token hinzu?
Authorization-Header mit dem Wert Bearer YOUR_TOKEN hinzu oder wähle die Vorlage „GET mit Bearer” und füge dein Token ein. Der generierte Befehl lautet curl <url> -H 'Authorization: Bearer YOUR_TOKEN'. Das Wort Bearer, ein einzelnes Leerzeichen, dann das Token — dieses genaue Format wird durch die OAuth-2.0-Bearer-Spezifikation (RFC 6750) verlangt. Um die Claims und den Ablaufzeitpunkt eines Tokens vor dem Senden zu prüfen, dekodiere ihn mit unserem JWT-Dekodierer. Wie lade ich eine Datei mit curl hoch?
curl -X POST <url> -F 'file=@/path/to/file' aus. Das @-Präfix weist curl an, die Datei vom Datenträger zu lesen und als multipart/form-data zu senden; du kannst weitere -F-Felder für Dateien und Klartextwerte in derselben Anfrage hinzufügen. Setze den Content-Type-Header für Multipart nicht manuell — curl generiert die Boundary und setzt den Header automatisch; eine Überschreibung bricht den Upload. Für einen einzelnen PUT einer Datei verwendet curl -T file <url>. Kann ich einen aus Browser-DevTools kopierten Befehl ("Als cURL kopieren") importieren?
-H-Header in den Headers-Bereich und die URL in das URL-Feld. Was ist der Unterschied zwischen curl unter Windows und Linux/macOS?
cmd.exe verwendet man doppelte Anführungszeichen (") um Werte und das Caret (^) für Zeilenfortsetzung, einfache Anführungszeichen haben keine besondere Bedeutung. In PowerShell ist curl ein Alias für Invoke-WebRequest, es sei denn, du rufst curl.exe explizit auf, und Quotierungsregeln unterscheiden sich erneut. Die schmerzloseste Option ist Git Bash oder WSL, wo die Unix-Style-Single-Quote-Befehle dieses Tools unverändert funktionieren. Wenn du cmd verwenden musst, wechsle zur einzeiligen Ausgabe und ersetze die '…'-Quotierung durch "…". Was ist der Unterschied zwischen -d, --data-raw und --data-binary?
-d (Alias --data) sendet einen Body und entfernt Zeilenumbrüche und Wagenrückläufe aus den Daten — gut für key=value-Formularpaare, riskant für mehrzeiliges JSON. --data-raw ist identisch, behandelt jedoch ein führendes @ nicht als Dateinamen — die sichere Wahl, wenn die Daten buchstäblich mit @ beginnen könnten. --data-binary sendet die Bytes exakt wie angegeben, ohne Entfernung von Zeilenumbrüchen — das richtige Flag für rohe Dateiinhalte (--data-binary @file.json) oder jede Nutzlast, bei der Leerzeichen bedeutsam sind. Alle drei implizieren POST, es sei denn, die Methode wird überschrieben. Wie sende ich Cookies mit curl?
-b zum Senden und -c zum Speichern von Cookies. -b 'name=value' sendet einen Literal-Cookie-String, während -b cookies.txt Cookies aus einer Netscape-Format-Datei liest. Um Cookies zu speichern, die ein Server setzt (z. B. nach einem Login), füge -c cookies.txt hinzu, um sie in ein Jar zu schreiben, und verwende das Jar dann mit -b cookies.txt bei der nächsten Anfrage. Dieser Builder konzentriert sich auf Header, Auth und Body; für einen Cookie-Header kannst du auch einfach einen Cookie: name=value-Header im Headers-Bereich hinzufügen. Wie folge ich Weiterleitungen?
-L-Flag manuell hinzu. Standardmäßig gibt curl die 301/302-Antwort aus und stoppt; -L weist es an, dem Location-Header bis zum endgültigen Ziel zu folgen. Dies ist unverzichtbar für Download-Links hinter CDNs, gekürzte URLs und APIs, die von HTTP auf HTTPS umleiten. Kombiniere es mit -o dateiname, um eine heruntergeladene Datei zu speichern, nachdem die Weiterleitung aufgelöst wurde. Wie setze ich einen Anfrage-Timeout?
--connect-timeout <Sekunden> hinzuzufügen, das begrenzt, wie lange curl auf den Verbindungsaufbau wartet. Für eine Obergrenze der gesamten Übertragung — Verbindung plus Download — füge --max-time <Sekunden> manuell zum generierten Befehl hinzu. Timeouts festzulegen ist eine Best Practice in jedem Skript oder CI-Smoke-Test: Ohne sie kann ein hängender Endpunkt die Pipeline unbegrenzt blockieren. Kombiniere mit --retry N, wenn curl bei vorübergehenden Fehlern automatisch wiederholen soll. Verwandte Werkzeuge
Alle Werkzeuge anzeigen →htpasswd Generator — bcrypt, Apache MD5 (apr1) & Basic Auth
Web & API
htpasswd-Einträge mit bcrypt, Apache MD5 (apr1), SHA-1 u. v. m. erzeugen. Fertige Konfigs für Apache, nginx & Docker. 100 % im Browser — kein Upload.
Open Graph & Meta-Tag-Generator
Web & API
Open Graph-, Twitter-Card- und SEO-Meta-Tags erzeugen — mit Live-Vorschau für Google, Facebook und X. 100 % kostenlos, im Browser, ohne Anmeldung. Code kopieren und einfügen.
Nginx Location Tester — warum dieser Block greift
Web & API
Welcher nginx location-Block greift — und warum jeder andere verloren hat. Kostenloser Tester für =, ^~, ~ und ~*, komplett im Browser.
IPv4-Subnetzrechner
Web & API
Netzwerkadresse, Broadcast, nutzbaren Hostbereich, Subnetzmaske und Wildcard-Maske für jeden IPv4-CIDR-Block berechnen. Mit /31 nach RFC 3021, Subnetzteilung und Berechnung rein im Browser.
traceparent-Dekodierer — W3C Trace Context
Web & API
Schluss mit dem Hex-Zählen. Kostenloser Online-traceparent-Dekodierer — läuft im Browser, kein Upload. Trace-ID, Span-ID, 8 trace-flags-Bits, tracestate, Datadog/X-Ray/B3.
AES-Entschlüsselungstool — OpenSSL- & CryptoJS-kompatibel
Sicherheitswerkzeuge
AES online entschlüsseln — GCM/CBC/CTR, Passphrase oder Rohschlüssel, erkennt automatisch das OpenSSL- & CryptoJS-Format „U2FsdGVkX1“. 100 % im Browser, Schlüssel verlassen die Seite nie.