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/usersPer 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.
Sfida
EspertoInvia JSON reale e dimostra che è stato etichettato correttamente.
- Avvia il listener di acquisizione sulla porta 9125
- Invia con POST il corpo
{"name":"ada"}a/users, dichiarandolo come JSON - Stampa la riga Content-Type da
req.txt
Output previsto:
Content-Type: application/jsonProvalo tu
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Reti da terminale
4È raggiungibile?
ICMP e pingLeggere l'output di pingQuando ping menteConnessione rifiutata o timeoutRiepilogo: raggiungibilità7Invio di dati
POST con -dCosa invia davvero -dCodifica dei formInvio di JSONPUT e DELETERiepilogo: scrivere datiEsercitati da solo: Playground Terminal