Menu
Coddy logo textTech

JSON senden

Lektion 35 von 47 im Kurs Netzwerken mit dem Terminal von Coddy.

Die meisten APIs erwarten heute JSON, nicht Form-Encoding. Zwei Dinge müssen sich ändern, und das zweite zu vergessen, ist der mit Abstand häufigste Fehler in diesem gesamten Bereich.

curl -s -H 'Content-Type: application/json' \
     -d '{"name":"ada"}' http://127.0.0.1:9125/users

Erstens wird der Body zu JSON. Zweitens musst du ihn mit einem Content-Type-Header deklarieren, weil curl den Body sonst weiterhin als Formulardaten kennzeichnet. Der Server versucht dann, JSON als key=value-Paare zu parsen, und weist es zurück, normalerweise mit einem 400-Fehler.

Wenn eine API also sagt, dass dein JSON ungültig ist, obwohl es für dich vollkommen gültig aussieht, überprüfe den Header, bevor du das JSON überprüfst.

Achte auch auf die Anführungszeichen. JSON enthält viele doppelte Anführungszeichen. Umschließe daher den gesamten Body mit einfachen Anführungszeichen, dann lässt die Shell ihn unverändert.

challenge icon

Aufgabe

Experte

Sende echtes JSON und beweise, dass es korrekt gekennzeichnet wurde.

  1. Starte den Listener zur Aufzeichnung auf Port 9125
  2. Sende den Body {"name":"ada"} per POST an /users und deklariere ihn als JSON
  3. Gib die Zeile Content-Type aus req.txt aus

Erwartete Ausgabe:

Content-Type: application/json

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Netzwerken mit dem Terminal

Übe selbstständig: Terminal-Playground