Menu
Coddy logo textTech

Invio di JSON

Lezione 35 di 47 del corso Reti da terminale di Coddy.

Oggi la maggior parte delle API si aspetta JSON, non dati codificati come modulo. Devono cambiare due cose, e dimenticare la seconda è l’errore più comune in assoluto in questo ambito.

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

Per prima cosa, il corpo diventa JSON. In secondo luogo, devi dichiararlo con un header Content-Type, perché altrimenti curl continua a etichettare il corpo come dati del modulo. Il server cerca quindi di analizzare il JSON come coppie key=value e lo rifiuta, di solito con un errore 400.

Quindi, quando un’API dice che il tuo JSON non è valido e a te sembra perfettamente valido, controlla l’header prima di controllare il JSON.

Fai attenzione anche alle virgolette. Il JSON è pieno di virgolette doppie, quindi racchiudi l’intero corpo tra virgolette singole e la shell lo lascerà invariato.

challenge icon

Sfida

Esperto

Invia JSON reale e dimostra che è stato etichettato correttamente.

  1. Avvia il listener di acquisizione sulla porta 9125
  2. Invia con POST il corpo {"name":"ada"} a /users, dichiarandolo come JSON
  3. Stampa la riga Content-Type da req.txt

Output previsto:

Content-Type: application/json

Provalo tu

Terminale
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Reti da terminale

Esercitati da solo: Playground Terminal