Menu
Coddy logo textTech

Enviando JSON

Lição 35 de 47 do curso Redes com o Terminal da Coddy.

A maioria das APIs hoje espera JSON, não codificação de formulário. Duas coisas precisam mudar, e esquecer a segunda é o erro mais comum em toda essa área.

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

Primeiro, o corpo se torna JSON. Segundo, você precisa declará-lo com um cabeçalho Content-Type, porque, caso contrário, o curl ainda identifica o corpo como dados de formulário. O servidor então tenta analisar o JSON como pares key=value e o rejeita, geralmente com um 400.

Portanto, quando uma API disser que seu JSON é inválido e ele parecer perfeitamente válido para você, verifique o cabeçalho antes de verificar o JSON.

Preste atenção também às aspas. JSON contém muitas aspas duplas, então envolva todo o corpo em aspas simples, e o shell o deixará como está.

challenge icon

Desafio

Especialista

Envie um JSON real e prove que ele foi rotulado corretamente.

  1. Inicie o listener de captura na porta 9125
  2. Faça um POST do corpo {"name":"ada"} para /users, declarando-o como JSON
  3. Imprima a linha Content-Type de req.txt

Saída esperada:

Content-Type: application/json

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Redes com o Terminal

Pratique por conta própria: Playground de Terminal