Skip to main content

curl

En este ejemplo voy a contar como usar curl, una potente herramienta desde línea de comando para probar conexiones http y https.

Ejecutar curl

El comando básicamente es curl y la url, por ejemplo:

etaboada@MacBook-Pro-Edu.local ~ > curl https://tecnocratica.net                                                                                                 09:07:56
<!DOCTYPE html>
<html lang="es" prefix="og: https://ogp.me/ns#">
	<head>
        <title>Tecnocrática | Proveedor tecnológico de servicios digitales</title>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<link rel="pingback" href="https://tecnocratica.net/xmlrpc.php" />

Esto nos devuelve el contenido de la url por consola

Modificadores de curl

Los principales modificadores de curl, son los siguientes:

-H

Permite enviar cabeceras como el tipo de contenido, autenticaciones o la compresión

Ejemplos

curl -H "Content-Type: application/json"
curl -H "Accept-Encoding: gzip"
 curl -H "Authorization: PVEAPIToken=root@pam!token:XXXXXXXXXX" https://proxmox.tecnocratica.net

--data / -d

Permite enviar datos a la URL (esto es muy útil para probar o usar API)

curl --data '{"nombre":"Eduardo"}'

Podemos usar también un fichero JSON, si tenemos que enviar mucho contenido en los datos

curl --data @misdatos.json

-i

Muestra las cabeceras de la respuesta

-I

Muestra solamente las cabeceras de la respuesta (HEAD request), no el resto del resultado

-X POST

Envía una petición con un POST en lugar de un GET que es el sistema por defecto.

-X PUT

AL igual que el POST, envía un PUT

-v

Verbose, muestra cabeceras, traza de la conexión etc. Se puede usar -v o también --v según el nivel de información que queramos obtener.

-k / --insecure

Inseguro, esto significa que no va a validar los certificados, esto es muy útil cuando lo usamos en URL internas que no tienen certificado, como por ejemplo https://tecnocratica.mired

--cert  --key

Usa un certificado de cliente específico y una clave específica para la conexión

curl --key saddaRTdk.....

-K / --config

Especifica un fichero de configuración para el curl

En primer lugar crearemos el fichero de config configFile.txt

# Configura el método HTTP en POST
-X POST

# Configura User-Agent
-A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0"

# Agrega la request header
-H "Accept: application/json"

# Agrega cookie values
-b "cookie1=Valordelacookie1; cookie2=Valordelacookie2"

# Agrega los datos
-d "{\"Nombre\": \"Eduardo\", \"Empresa\": \"Tecnocratica\"}"  # Entre comillas y comillas internas escapadas 


curl  \
    --config configFile.txt \
    --url https://tecnocratica.net

-u

Especifica un nombre de usuario

curl -u user:password tecnocratica.net

-o, -O

Guarda un fichero en un nombre específico (-o) o bien tal y como se llama en el servidor origen

curl -o Eduardo.zip https://www.tecnocratica.net/downloads/archivo.zip

Esto nos dejará un archivo Eduardo.zip en la carpeta

curl -O https://www.tecnocratica.net/downloads/archivo.zip

Esto nos dejará un archivo llamado archivo.zip en la carpeta

-T

Nos permite transferir vía FTP

curl -u Usuarioftp:password -T DescargadoViaFtp.tar.gz ftp://ftpserver.tecnocratica.net