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/usersPrimeiro, 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á.
Desafio
EspecialistaEnvie um JSON real e prove que ele foi rotulado corretamente.
- Inicie o listener de captura na porta 9125
- Faça um POST do corpo
{"name":"ada"}para/users, declarando-o como JSON - Imprima a linha Content-Type de
req.txt
Saída esperada:
Content-Type: application/jsonExperimente você mesmo
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
4É Possível Alcançá-lo?
ICMP e pingLendo a Saída do PingQuando o Ping EnganaRecusado ou ExpiradoRecapitulação: Acessibilidade7Enviando Dados
POST com -dO que -d realmente enviaCodificação de formuláriosEnviando JSONPUT e DELETERecapitulação: escrevendo dados2Nomes e DNS
Por que os nomes existemO arquivo hostsConsultando um nomeTipos de registrosRecapitulação: nomes3Portas e Sockets
O que é uma portaPortas conhecidasLocalhostEscutando vs. conectandoRecapitulação: portas6curl em Detalhes
Visualizando os CabeçalhosSalvando RespostasCabeçalhos PersonalizadosStatus e TempoCódigos de Saída do curlRecapitulação: Opções do curl9Autenticação e Depuração
Chaves de API e BearerO User AgentTimeouts e Novas TentativasLendo uma FalhaRevisão: DepuraçãoPratique por conta própria: Playground de Terminal