Menu
Coddy logo textTech

Envío de JSON

Lección 35 de 47 del curso Redes con la terminal de Coddy.

La mayoría de las API actuales quieren JSON, no codificación de formularios. Hay dos cosas que deben cambiar, y olvidar la segunda es el error más común en toda esta área.

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

Primero, el cuerpo se convierte en JSON. Segundo, debes declararlo con un encabezado Content-Type, porque, de lo contrario, curl sigue etiquetando el cuerpo como datos de formulario. El servidor intenta después analizar el JSON como pares key=value y lo rechaza, normalmente con un 400.

Así que, cuando una API dice que tu JSON no es válido y a ti te parece perfectamente válido, comprueba el encabezado antes de comprobar el JSON.

Presta atención también a las comillas. JSON está lleno de comillas dobles, así que encierra todo el cuerpo entre comillas simples y el shell lo dejará intacto.

challenge icon

Desafío

Experto

Envía JSON real y demuestra que se etiquetó correctamente.

  1. Inicia el oyente de captura en el puerto 9125
  2. Envía mediante POST el cuerpo {"name":"ada"} a /users, declarándolo como JSON
  3. Imprime la línea Content-Type de req.txt

Salida esperada:

Content-Type: application/json

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Redes con la terminal

Practica por tu cuenta: Playground de Terminal