Zum Inhalt springen
BeispielWerk
English

curl Beispiele: GET, POST, Header, Upload, Auth

curl ist ein Kommandozeilenwerkzeug, das HTTP-Anfragen sendet und Antworten anzeigt. Die Snippets zeigen typische Aufrufe: Methoden, JSON-Körper, Formulare, Datei-Upload, Weiterleitungen, Cookies, Zeitmessung, CORS-Preflight und TLS-Details; die Adressen zeigen auf example.com. Tokens und Passwörter sind Platzhalter.

21 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf. Darunter: 1× Fiktiv.

  • curl: einfacher GET-Aufruf

    curl https://example.com/api/kunden
  • curl: GET mit Accept-Header und Antwort-Kopfzeilen

    curl -i -H "Accept: application/json" https://example.com/api/kunden/1
  • curl: POST mit JSON-KörperFiktiv

    curl -X POST https://example.com/api/kunden \
      -H "Content-Type: application/json" \
      -d '{"vorname": "Anna", "nachname": "Müller", "email": "anna.mueller@example.com"}'
  • curl: POST mit JSON aus einer Datei

    curl -X POST https://example.com/api/kunden \
      -H "Content-Type: application/json" \
      --data @kunde.json
  • curl: PUT zum Ersetzen einer Ressource

    curl -X PUT https://example.com/api/kunden/1 \
      -H "Content-Type: application/json" \
      -d '{"vorname": "Anna", "nachname": "Beispiel"}'
  • curl: PATCH zum Ändern einzelner Felder

    curl -X PATCH https://example.com/api/kunden/1 \
      -H "Content-Type: application/merge-patch+json" \
      -d '{"ort": "Musterstadt"}'
  • curl: DELETE

    curl -X DELETE -i https://example.com/api/kunden/1
  • curl: Bearer-Token als Platzhalter

    curl https://example.com/api/profil \
      -H "Authorization: Bearer <DEIN_TOKEN>"

    Platzhalter in spitzen Klammern ersetzen. Echte Tokens nie in Skripte oder Verlauf schreiben.

  • curl: Basic Auth mit Platzhaltern

    curl -u "benutzer:passwort" https://example.com/api/intern

    Platzhalter. Besser nur den Benutzernamen angeben (-u benutzer): curl fragt dann nach dem Passwort.

  • curl: Formularfelder senden (urlencoded)

    curl -X POST https://example.com/anmelden \
      --data-urlencode "email=anna.mueller@example.com" \
      --data-urlencode "nachricht=Hallo & Grüße"
  • curl: Datei hochladen (multipart)

    curl -X POST https://example.com/api/upload \
      -F "datei=@bericht.pdf;type=application/pdf" \
      -F "titel=Monatsbericht"
  • curl: nur Kopfzeilen abrufen (HEAD)

    curl -I https://example.com
  • curl: Weiterleitungen folgen

    curl -L -o seite.html https://example.com/alt
  • curl: nur den Statuscode ausgeben

    curl -s -o /dev/null -w "%{http_code}\n" https://example.com
  • curl: Zeiten der Anfrage messen

    curl -s -o /dev/null -w "DNS: %{time_namelookup}s\nVerbindung: %{time_connect}s\nTLS: %{time_appconnect}s\nErstes Byte: %{time_starttransfer}s\nGesamt: %{time_total}s\n" https://example.com
  • curl: Wiederholungen und Zeitlimit

    curl --retry 3 --retry-delay 2 --connect-timeout 5 --max-time 20 https://example.com/api/status
  • curl: Cookies speichern und wiederverwenden

    curl -c cookies.txt -d "benutzer=beispiel&passwort=platzhalter" https://example.com/login
    curl -b cookies.txt https://example.com/konto
  • curl: Namen auf eine Test-IP auflösen (--resolve)

    curl --resolve example.com:443:192.0.2.10 https://example.com/

    192.0.2.10 liegt im Dokumentationsbereich: so ist der Aufruf nur ein Muster und erreicht keinen echten Server.

  • curl: CORS-Preflight nachstellen

    curl -i -X OPTIONS https://example.com/api/kunden \
      -H "Origin: https://app.example.org" \
      -H "Access-Control-Request-Method: POST" \ …
  • curl: ausführliche Ausgabe mit TLS-Details

    curl -v https://example.com 2>&1 | head -40
  • HTTP: rohe Anfrage mit Körper

    POST /api/kunden HTTP/1.1
    Host: example.com
    Content-Type: application/json …

    Content-Length zählt Bytes: das ü ist in UTF-8 zwei Bytes. Hier ergibt der Körper 52 Bytes.

Weitere Themen in Datenformate & Snippets