Cómo enviar solicitudes POST con cURL

cURL es una utilidad de línea de comandos versátil diseñada para transferencias de datos sin inconvenientes a través de diferentes protocolos de red, incluidos HTTP, HTTPS y FTP. Disponible en todos los principales sistemas operativos, cURL se ha convertido en la herramienta estándar para enviar solicitudes HTTP desde la línea de comandos. Su utilidad multiplataforma admite protocolos como HTTP, HTTPS, FTP e IMAP, lo que facilita el envío de solicitudes a las API y el rastreo de sitios web. Debido a su amplia disponibilidad y compatibilidad con protocolos, cURL se menciona comúnmente en la documentación de API REST como una forma rápida de probar llamadas API directamente desde la línea de comandos.
Este tutorial profundiza en la ejecución de solicitudes POST mediante cURL, lo que permite una comunicación eficiente con los servidores a través de simples instrucciones de línea de comandos.
¿Qué es una solicitud POST?
Una solicitud POST es un método HTTP que se utiliza para enviar datos a un servidor y es uno de los métodos HTTP más comunes. A diferencia de las solicitudes GET, en las que los datos se incluyen en la URL, las solicitudes POST transmiten los datos en el cuerpo de la solicitud. Esto permite una transferencia de datos discreta y evita las limitaciones de longitud de URL impuestas por los navegadores en las solicitudes GET.
Las solicitudes POST se utilizan con frecuencia para enviar formularios, cargar archivos y enviar datos JSON a las API. Dado que los datos se almacenan en el cuerpo de la solicitud, no son visibles en el historial del navegador y, a diferencia de las solicitudes GET, los navegadores no suelen almacenar en caché las solicitudes POST.
Casos prácticos de uso de solicitudes POST de cURL
Las solicitudes POST de cURL se utilizan ampliamente en diversos escenarios, incluidos:
- Prueba de API REST : los desarrolladores utilizan cURL para probar rápidamente los puntos finales de API antes de implementarlos en las aplicaciones.
- Automatización del envío de formularios : al usar cURL, puede automatizar las interacciones con formularios web y enviar datos sin necesidad de ingresarlos manualmente.
- Carga de archivos : muchas API permiten cargar archivos mediante solicitudes POST, lo que hace de cURL una herramienta eficaz para automatizar este proceso.
- Interactuar con sistemas de autenticación : los desarrolladores pueden usar cURL para autenticar usuarios y acceder a recursos protegidos con tokens o credenciales de API.
- Extracción e integración de datos : la extracción e integración de datos de diferentes fuentes en línea se simplifica utilizando las capacidades de solicitud POST de cURL.
Ejecutar una solicitud POST con cURL
Para comenzar a utilizar cURL para solicitudes POST, asegúrese de que esté instalado en su sistema. Si aún no lo ha instalado, consulte nuestra guía sobre cómo configurar cURL. A continuación, se incluye una tabla de referencia que resume las opciones esenciales de cURL:
Bandera corta | Bandera larga | Argumento(s) | Descripción |
-INCÓGNITA | --pedido | (use "POST" para solicitudes POST) | Define el método HTTP para la solicitud. |
-b | --galleta | Envía cookies en la solicitud | |
-do | --tarro de galletas | Guarda las cookies recibidas en un archivo | |
-d | --datos | Transmite datos en una solicitud POST | |
-F | --fallar | Garantiza un fallo silencioso en los errores del servidor. | |
-F | --forma | <nombre=contenido> | Envía datos del formulario (application/x-www-form-urlencoded) |
-H | --encabezamiento | encabezado/@archivo | Incluye encabezados HTTP personalizados |
-i | --incluir | Muestra encabezados HTTP en la respuesta | |
-l | --cabeza | Recupera solo encabezados | |
-k | --inseguro | Evita la verificación SSL | |
-El | --ubicación | Sigue redirecciones (3XX) | |
-o | --producción | Guarda la salida en un archivo especificado | |
-O | --nombre-remoto | Guarda la salida con el nombre de archivo remoto | |
-s | --silencioso | Suprime los mensajes de salida | |
-v | --verboso | Permite salida detallada (depuración) | |
-w | --escritura | Detalles de la respuesta de salida |
Para ver la lista completa de opciones disponibles, utilice:
rizo--ayuda
Errores comunes y cómo solucionarlos
Aunque cURL es potente, los usuarios suelen encontrar errores al enviar solicitudes POST. A continuación, se indican algunos problemas habituales y sus soluciones:
- curl: (6) No se pudo resolver el host : esto significa que el nombre de dominio es incorrecto o que hay un problema de resolución de DNS. Verifique nuevamente la URL.
- curl: (7) No se pudo conectar al host : indica que no se puede acceder al servidor. Asegúrese de que el servidor esté en línea y de que tenga una conexión a Internet activa.
- curl: (35) Error de conexión SSL : si la solicitud falla debido a problemas de SSL, intente usar -k para omitir la verificación SSL.
- HTTP 400 Bad Request (Solicitud incorrecta ): esto significa que el servidor rechazó la solicitud, generalmente debido a un formato de datos incorrecto. Verifique el tipo de contenido y la carga de datos.
- HTTP 401 No autorizado : se produce cuando se requiere autenticación, pero no se encuentra disponible o es incorrecta. Asegúrese de que las claves API o las credenciales se transmitan correctamente con -u o -H "Autorización: Portador <token>".
Sintaxis básica de la solicitud POST
curl -X POST -d "Hola" https://ejemplo.com/api
En este comando:
- -X POST especifica el tipo de solicitud.
- -d "Hola" define los datos que se envían.
- https://example.com/api es la URL de destino.
Configuración de encabezados de tipo de contenido
curl -X POST -H "Tipo de contenido: texto sin formato" -d "Hola" https://example.com/api
Agregar -H "Content-Type: text/plain" informa al servidor que el formato de los datos es texto simple.
Envío de datos JSON
curl -X POST -H "Tipo de contenido: aplicación/json" -d '{"key":"value"}' https://example.com/api
El uso de application/json como tipo de contenido garantiza que los datos se interpreten correctamente como JSON.
Envío de datos XML
curl -X POST -H "Tipo de contenido: aplicación/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api
Subir archivos con POST
curl -X POST -F "archivo=@/ruta/a/img.png" https://ejemplo.com/api/upload
Para cargar varios archivos:
curl -X POST -F "archivo=@/ruta/a/img1.png" -F "archivo=@/ruta/a/img2.png" https://ejemplo.com/api/upload
Autenticación con cURL
curl -u nombre de usuario:contraseña https://ejemplo.com/login
Reemplace el nombre de usuario y la contraseña con credenciales reales.
Conclusión
cURL simplifica las interacciones HTTP con sus potentes y flexibles opciones de línea de comandos. Al dominar las solicitudes POST, los desarrolladores pueden gestionar de forma eficiente las comunicaciones de API, las transmisiones de datos y las cargas de archivos. Ya sea que necesite probar puntos finales de API, automatizar el envío de formularios o extraer datos de sitios web, cURL ofrece una solución liviana y eficaz. ¡Siga experimentando con cURL para optimizar su flujo de trabajo!
Tenga en cuenta que Plisio también le ofrece:
Cree facturas criptográficas en 2 clics and Aceptar donaciones criptográficas
14 integraciones
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 bibliotecas para los lenguajes de programación más populares
- PHP Biblioteca
- Python Biblioteca
- React Biblioteca
- Vue Biblioteca
- NodeJS Biblioteca
- Android sdk Biblioteca
- C#
- Ruby
- Java
- Kotlin
19 criptomonedas y 12 blockchain
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)