Usar curl para peticiones HTTP

curl es una herramienta de línea de comandos para intercambiar información mediante URLs.

curl-guia-http

Breve introducción a curl

curl es una herramienta de línea de comandos utilizada para transferir archivos a través de diferentes protocolos de red (HTTP, FTP, SCP, etc). Es muy útil tanto para desarrolladores como administradores de sistemas para interactuar con servicios web, probar APIs, descargar archivos y automatizar tareas relacionadas con la transmisión de datos.

El proyecto fue iniciado por Daniel Stenberg en 1997 bajo el nombre original de “httpget”. Daniel sigue liderando el desarrollo del proyecto, que cuenta con contribuciones de una activa comunidad de desarrolladores.

Es Open Source y distribuido bajo la licencia MIT, lo que permite su uso, modificación y distribución sin restricciones significativas. El código fuente de la herramienta está disponible públicamente en GitHub.

Vamos a ver ejemplos prácticos:

Realizar una solicitud HTTP GET

Este comando recupera el contenido de una URL especificada.

Terminal
curl http://example.com

Obtener los encabezados de la respuesta HTTP

Utiliza la opción -I para obtener solo los encabezados de la respuesta.

Terminal
curl -I http://example.com

Realizar una solicitud HTTP POST

Puedes enviar datos a un servidor mediante POST especificando los datos con -d.

Terminal
curl -X POST -d "param1=valor1&param2=valor2" http://example.com

Realizar una solicitud POST enviando JSON

Incluye el encabezado Content-Type para indicar que los datos son JSON.

Terminal
curl -X POST -H "Content-Type: application/json" -d '{"clave":"valor"}' http://example.com

Realizar una solicitud HTTP PUT

El método PUT permite actualizar un recurso existente en el servidor.

Terminal
curl -X PUT -d "param1=valor1&param2=valor2" http://example.com/recurso

Seguir redirecciones

Para seguir redirecciones automáticamente, utiliza la opción -L.

Terminal
curl -L http://example.com

Guardar la respuesta en un archivo

La opción -o guarda el contenido descargado en un archivo especificado.

Terminal
curl -o archivo_salida.html http://example.com

Usar autenticación HTTP

Para realizar solicitudes autenticadas, utiliza -u con el formato usuario:contraseña.

Terminal
curl -u usuario:contraseña http://example.com

Establecer un User-Agent diferente

La opción -A permite establecer un encabezado User-Agent personalizado.

Terminal
curl -A "Mi-User-Agent" http://example.com

Inspeccionar todos los detalles de la solicitud y respuesta

Usa la opción -v (verbose) para inspeccionar detalles como los encabezados y el contenido transferido.

Terminal
curl -v http://example.com

Esto es sólo un breve resumen de las utilidades de curl. Para conocer más sobre ella visita la documentación oficial.