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/usersPrimero, 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.
Desafío
ExpertoEnvía JSON real y demuestra que se etiquetó correctamente.
- Inicia el oyente de captura en el puerto 9125
- Envía mediante POST el cuerpo
{"name":"ada"}a/users, declarándolo como JSON - Imprime la línea Content-Type de
req.txt
Salida esperada:
Content-Type: application/jsonPruébalo tú mismo
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
4¿Es accesible?
ICMP y pingLectura de la salida de pingCuando ping mienteRechazado o agotado el tiempo de esperaRepaso: accesibilidad7Envío de datos
POST con -dQué envía realmente -dCodificación de formulariosEnvío de JSONPUT y DELETERepaso: escritura de datos2Nombres y DNS
Por qué existen los nombresEl archivo hostsBuscar un nombreTipos de registrosRepaso: nombresPractica por tu cuenta: Playground de Terminal