Menu
CoddyTech

Invio di JSON

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

La maggior parte delle API oggi vuole JSON, non dati codificati come modulo. Devono cambiare due cose, e dimenticare la seconda è l’errore più comune in assoluto in quest’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’intestazione Content-Type, perché altrimenti curl continua a etichettare il corpo come dati del modulo. Il server prova quindi ad 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'intestazione prima di controllare il JSON.

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

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