Como desarrollador web actual (o aspirante), es muy probable que esté familiarizado con las solicitudes HTTP, especialmente cuando interactúa con las API.

Las plataformas API pueden ser útiles para automatizar las llamadas de solicitud y crear solicitudes más sofisticadas. Pero a veces, ya sea que esté realizando una prueba única o una depuración, desea ejecutar una solicitud HTML rápida desde la Terminal.
En estas situaciones, cURL es uno de los mejores creadores de sitios web gratuitos y algo que todo desarrollador debería tener a mano.
Este artículo presenta cURL, cómo y por qué se usa, y proporciona algunos ejemplos de comandos y casos de uso comunes de cURL.
¿Qué es el comando cURL?
URL del cliente (cURL, pronunciado «curl») es una utilidad de línea de comandos que permite el intercambio de datos entre un dispositivo y un servidor a través de la terminal. Al utilizar esta interfaz de línea de comandos (CLI), el usuario especifica la URL del servidor (la ubicación a la que desea enviar la solicitud) y los datos que desea enviar a esa URL del servidor.
Las herramientas API como Postman e Insomnia proporcionan una interfaz de usuario (UI) interactiva que le permite crear varias formas de solicitudes a URL para recibir y procesar solicitudes. El comando cURL hace lo mismo excepto para su terminal. cURL funciona en Linux, Mac y Windows.
El comando cURL usa la URL del lado del cliente libcURL biblioteca de transferencia. Esta biblioteca admite muchos protocolos de transferencia diferentes, incluidos HTTPS, SMTP y FTP. También le permite adjuntar cookies, configurar proxies y agregar credenciales al realizar solicitudes.
Los casos de uso de CURL incluyen pruebas de API, obtención de datos de fuentes, pruebas de páginas web y seguimiento de redireccionamientos desde la terminal.
Cómo usar cURL
Ya sabes qué es un comando cURL, pero ¿cómo funciona?
cURL viene preinstalado en Windows y macOS; de lo contrario, puede descargar el paquete desde Sitio web de CURL.
El comando cURL recibe una URL para enviar datos, o recibir datos, junto con otras opciones para varios propósitos.
La sintaxis del comando cURL es:
rizo [options] [URL]
Este artículo utiliza JSON Un marcador de posición API falsa para explicar las diferentes formas de usar cURL. Esta API de muestra incluye varias rutas de muestra para realizar solicitudes.
Pide datos de la fuente
Usando OBTENER método de cURL, puede solicitar rápidamente datos de fuente o API. Aquí hay un comando cURL simple que hace OBTENER tarea:
cURL https://jsonplaceholder.typicode.com/todos/1
Sin pasar ningún indicador u opción, el comando cURL realiza una acción predeterminada OBTENER solicitud a la URL especificada. El comando devuelve el cuerpo de la respuesta enviada desde la API, que en su terminal se vería así:
Esto es similar a los resultados de plataformas como Postman, que se muestran a continuación:

Además, puede incluir opciones y valores para usar un método de solicitud diferente con el comando cURL. Por ejemplo, puedes usar -X (guión y X mayúscula) con opción de solicitud. los -X opción es un alias para –tarea.
Escriba el comando de la siguiente manera:
cURL-X [METHOD] [URL]
Defecto OBTENER el método en el primer comando cURL anterior es el mismo que el siguiente:
cURL -X DESCARGAR https://jsonplaceholder.typicode.com/todos/1
Enviar los datos a la fuente
Usando OFICINA DE CORREOS cURL métodos y comandos, puede enviar datos al servidor a través de API. La API procesa los datos y luego toma medidas como guardarlos en una base de datos y devuelve una respuesta que indica el estado de la solicitud.
Que hacer OFICINA DE CORREOS solicitud a url, uso -X opción y pase OFICINA DE CORREOS método como valor. Pero, ¿qué hay de agregar datos a su solicitud? Estás usando otra opción, -d (un guión y una d minúscula) que es un alias para –datos.
Al enviar datos con una solicitud, puede utilizar dos formatos de datos populares: aplicación / x-www-form-urlencoded o aplicación / json. Discutiremos estos dos métodos más adelante.
aplicación / x-www-form-URLencoded
Si no especifica el formato que desea, cURL usa aplicación / x-www-form-urlencoded por defecto. Aquí hay un ejemplo que usa este formato y una API JSON falsa:
cURL -X POST -d «nombre = cURL y tipo = artículo» https://jsonplaceholder.typicode.com/posts
Este comando hace OFICINA DE CORREOS pregunta por https://jsonplaceholder.typicode.com/posts y pasa los datos codificados de URL «Nombre =rizo& tipo = artículo « que es una clave de nombre con un valor cURL y una clave de tipo con un valor de artículo.
Abajo OFICINA DE CORREOS solicitudes enviadas a la API JSON Fake, el cuerpo de la respuesta es el objeto de datos que se le envía junto con la propiedad ID.
Este es el contenido de la respuesta de la API después de escribir el comando:
aplicación / JSON
Con cURL también puede enviar un objeto hash JSON como este:
cURL -X POST -d ‘{«nombre»: «cURL», «tipo»: «artículo»}’ https://jsonplaceholder.typicode.com/posts
Como se describió anteriormente, los datos en esta solicitud se envían en aplicación / x-www-form-urlencoded formato. Aquí está el resultado de la API:
La API entiende que los datos de la solicitud están en formato de datos codificados en URL, por lo que no los interpreta como se esperaba. Debe especificar que es un formato de datos JSON usando -H (guión con H mayúscula), opción, alias para –Bóveday pasando el tipo de contenido encabezado de la siguiente manera:
cURL -X POST -d ‘{«nombre»: «cURL», «tipo»: «artículo»}’ -H «Tipo de contenido: aplicación / json» https://jsonplaceholder.typicode.com/posts
Ahora obtienes el cuerpo de respuesta correcto de la API:
En lugar de escribir una cadena JSON en la terminal, puede especificar un archivo JSON que el comando cURL usará para las opciones de datos. Por ejemplo, suponga que tiene un archivo llamado datos.json que dice lo siguiente:
Puede ejecutar el comando cURL asumiendo que está en el mismo proyecto que el archivo. Este comando descargará un archivo JSON, lo acortará y lo enviará con la solicitud. Obtendrá el mismo resultado que el anterior:
Eliminar recursos en el servidor
Puede enviar solicitudes de eliminación a la API usando ELIMINAR cURL métodos y comandos. La URL y los datos proporcionados en esta solicitud dependen de la configuración de la API.
Para la API falsa de JSON, especifica la ruta del recurso y ELIMINAR tal método:
rizo -X ELIMINAR https://jsonplaceholder.typicode.com/posts/1
El cuerpo de la respuesta es un objeto vacío:
Lo mejor para actualizar los recursos existentes con la API
Usando PONER cURL métodos y comandos, puede enviar solicitudes de «actualización» a la API que modifican un recurso existente. Para la API falsa de JSON, especifica la ruta del recurso y PONER métodos y cargue algunos datos para actualizar el recurso.
Aquí puede utilizar cualquier formato de datos. Este ejemplo utiliza aplicación / json:
cURL -X PUT -d ‘{«nombre»: «json», «tipo»: «publicación»}’ -H «Tipo de contenido: aplicación / json» https://jsonplaceholder.typicode.com/posts/1
Para que la API interprete correctamente la solicitud, debe especificar el formato de los datos en el encabezado directamente.
El código anterior devuelve este cuerpo de respuesta:
Protocolos y formatos CURL
Por defecto, cURL usa el protocolo HTTP. Aquí hay algunos otros protocolos y formatos que cURL puede usar:
Protocolo de transferencia de archivos
Protocolo de transferencia de archivos (FTP) transfiere archivos del servidor al cliente. Use este protocolo con cURL para cargar archivos como este:
CURL-T [selected-file] «FTP: //[target-destination]»
cURL es un buen reemplazo para el cliente FTP estándar.
Protocolo simple de transferencia de correo
Protocolo simple de transferencia de correo (SMTP) se utiliza para enviar datos al servidor SMTP. Estos datos consisten en el texto que se envía, el remitente y el destinatario. Se parece a esto:
cURL smtp: //[smtp-sever] –correo de [sender] –correo-rcpt [receiver] – Subir un archivo [mail-content-file]
Protocolo de red de diccionario
Diccionario de protocolo de red (DICT) proporciona acceso a los diccionarios. Cuando lo usa con cURL, ejecuta el siguiente comando:
rizo «Dict: //dict.org/d: hola»
Con este comando obtendrá un resultado que muestra el diccionario seleccionado y el significado de «hola» del diccionario.
Más protocolos se pueden encontrar en Página de manual de CURL.
Casos de uso comunes para cURL
Si bien las plataformas API generalmente brindan interfaces intuitivas para solicitar y enviar datos a una URL, cURL puede ser una excelente herramienta para usar con una terminal. Estos son algunos casos de uso comunes para el comando cURL.
Pruebe rápidamente las API desde la terminal
Como hemos visto, cURL le permite probar API rápidamente desde la terminal sin tener que descargar ninguna aplicación basada en API.
Descarga de imágenes y archivos al dispositivo
Dado que el terminal tiene acceso al sistema de archivos, también puede descargar imágenes de direcciones URL fácilmente.
Por ejemplo, aquí está el logo de Google URL. Al usar cURL, puede obtener una imagen como esta:
rizo https://www.google.com/images/branding/googlelogo/2x/googlelogo_light_color_272x92dp.png> google-logo.png
El uso de cURL y una URL de imagen devuelve los datos binarios de la imagen. Al almacenar los datos de la imagen sin procesar en un archivo de imagen (con una extensión .png que coincida con la extensión de la imagen original), puede guardar la imagen en su dispositivo.
Guardar el contenido de una URL
De forma similar a la descarga de imágenes, también puede guardar el contenido de una URL (como un sitio web) en un archivo. Aquí hay un ejemplo de la página de inicio de Google:
rizo -o google.html https://www.google.com
Esto guarda el código fuente de la página de inicio de Google en un archivo llamado google.html.
Haz que cURL trabaje para ti.
cURL es una herramienta CLI que le permite solicitar y transferir datos a través de una URL usando una variedad de protocolos. Proporciona flexibilidad y control de URL en la terminal.
Usar cURL en el terminal es simple, pero puede no ser intuitivo para todos los usuarios. Al proporcionar una URL y las opciones que necesita, puede solicitar y recuperar datos de URL, transferir datos a URL y más.









