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/usersErstens 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.
Aufgabe
ExperteSende echtes JSON und beweise, dass es korrekt gekennzeichnet wurde.
- Starte den Listener zur Aufzeichnung auf Port 9125
- Sende den Body
{"name":"ada"}per POST an/usersund deklariere ihn als JSON - Gib die Zeile Content-Type aus
req.txtaus
Erwartete Ausgabe:
Content-Type: application/jsonProbier es 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
4Ist es erreichbar?
ICMP und pingPing-Ausgabe lesenWenn Ping lügtAbgelehnt oder ZeitüberschreitungRückblick: Erreichbarkeit7Daten senden
POST mit -dWas -d tatsächlich sendetFormular-KodierungJSON sendenPUT und DELETERückblick: Daten schreiben2Namen und DNS
Warum Namen existierenDie Hosts-DateiEinen Namen nachschlagenRecord-TypenRückblick: NamenÜbe selbstständig: Terminal-Playground