Si eres desarrollador y trabajas con APIs, aprender a enviar solicitudes POST con cURL es obligatorio. Es una de las formas m?s sencillas de probar endpoints, subir datos o interactuar con servidores, todo desde tu terminal.
En este post te mostraremos c?mo enviar solicitudes POST con cURL y c?mo enviar JSON, XML, archivos y datos de formularios.
Paso 1: ?Est? instalado cURL?
La mayor?a de los sistemas ya tienen cURL. Para comprobar si el tuyo tambi?n, abre una terminal y ejecuta el siguiente comando:
curl --version
If it’s not installed, download it from curl.se. Windows users may need Git Bash or WSL to get the best results.
Paso 2: Una solicitud POST sencilla
Aqu? tienes un ejemplo b?sico de una solicitud POST con cURL:
curl -X POST -d "Hello" https://example.com/api
-X POST= m?todo HTTP-d= datos que env?as en el cuerpo
Paso 3: A?ade encabezados Content-Type
Para informar al servidor qu? tipo de datos est?s enviando, aseg?rate de incluir un encabezado Content-Type:
Para texto plano:
curl -X POST -H "Content-Type: text/plain" -d "Hello" https://example.com/api
Para JSON:
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"Alice","age":30}' https://example.com/api
Usa comillas simples para envolver el JSON y evitar que la terminal se confunda con las comillas dobles internas.
Paso 4: Env?a cargas XML
Si la API espera XML:
curl -X POST -H "Content-Type: application/xml" \
-d '<?xml version="1.0"?><user><name>Alice</name></user>' \
https://example.com/api
Paso 5: Sube archivos con -F
Para subir archivos (como im?genes, documentos o logs):
curl -X POST -F "file=@/path/to/file.jpg" https://example.com/upload
Subir varios archivos:
curl -X POST \
-F "image1=@/path/to/one.jpg" \
-F "image2=@/path/to/two.jpg" \
https://example.com/upload
cURL gestiona autom?ticamente multipart/form-data por ti.
Paso 6: Env?a datos de formulario
Para env?os cl?sicos de formularios (como iniciar sesi?n o enviar un formulario de contacto):
curl -X POST -d "username=test&password=1234" https://example.com/login
Tambi?n puedes enviar varios campos de formulario repitiendo el flag -d o combinarlos en una sola cadena.
Paso 7: A?ade autenticaci?n b?sica
Si el endpoint requiere credenciales de acceso, usa -u:
curl -u username:password https://example.com/secure
Esto a?ade autom?ticamente un encabezado Authorisation usando codificaci?n Base64.
Usar cURL con proxies residenciales
Si est?s probando endpoints geolocalizados o quieres privacidad extra, puedes usar cURL con un proxy as?:
curl -x http://proxyuser:[email protected]:5959 \
-X POST -d '{"action":"test"}' https://example.com/api
At Thunderproxy.com, we provide residential proxies that work perfect with cURL. This is helpful when testing websites from different locations or when you need to bypass rate limits.
Reflexiones finales
cURL is a tool for developers, system administrators and testers. It’s fast and efficient – whether you are sending JSON, uploading files, or logging into protected endpoints.
Once you learn the basic flags (-X, -d, -H, -F, -u), you’ll be comfortable to create any kind of HTTP request in seconds.