¿Para qué sirven las cabeceras?
Las cabeceras llevan metadatos. Accept indica los formatos de respuesta que entiende el cliente. Content-Type describe el formato del cuerpo enviado. Son cosas distintas: aceptar JSON no convierte automáticamente texto en JSON.
Elegir el formato
Usa application/json para JSON y comprueba la sintaxis antes de enviar. application/x-www-form-urlencoded sirve para formularios sencillos de clave y valor. Usa texto sin formato cuando la API lo solicite. Sigue la documentación del servicio.
Límites del navegador
Una página web no puede establecer todas las cabeceras. El navegador controla Host, Content-Length y Cookie. Las cabeceras personalizadas entre orígenes pueden activar una solicitud CORS previa. Esta herramienta no envía cuerpo con GET ni HEAD. Quita esas cabeceras del cURL o ejecútalo en una terminal.