DevTools

Cheatsheet cURL

Ferramenta para transferência de dados

Volver a los lenguajes
cURL
34 tarjetas encontradas
Categorías:
Versiones:

Pedidos Básicos


5 cards
GET simple
curl https://api.ejemplo.com

# Guardar respuesta en un archivo
curl https://site.com -o pagina.html

# Seguir redirecciones
curl -L http://site.com

Petición GET básica.

Timeout y retry
# Timeout de conexión (5s)
curl --connect-timeout 5 url

# Timeout total (30s)
curl --max-time 30 url

# Reintentar en fallo
curl --retry 3 --retry-delay 2 url

Control de tiempo.

Ver solo headers
# Solo cabeceras
curl -I https://site.com

# Headers + cuerpo
curl -i https://site.com

# Solo el código de estado
curl -o /dev/null -s -w "%{http_code}" url

Inspeccionar la respuesta.

Modo silencioso
# Sin barra de progreso
curl -s https://api.com

# Silencioso pero muestra errores
curl -sS https://api.com

# Mostrar errores detallados
curl -sS --show-error url

Controlar el output.

Parámetros de query
# Directamente en la URL
curl "https://api.com/búsqueda?q=node&p=2"

# Con --data-urlencode
curl -G https://api.com/búsqueda
  --data-urlencode "q=hola mundo"
  --data-urlencode "p=2"

Query strings (GET).

Métodos HTTP


4 cards
POST
curl -X POST https://api.com/users

# Con datos de formulario
curl -X POST https://api.com/users
  -d "nombre=Ana&email=ana@mail.com"

Enviar una petición POST.

PUT y PATCH
# PUT (reemplazar)
curl -X PUT https://api.com/users/1
  -d "nombre=Ana Silva"

# PATCH (actualización parcial)
curl -X PATCH https://api.com/users/1
  -d "email=nuevo@mail.com"

Actualizar recursos.

DELETE
curl -X DELETE https://api.com/users/1

# Con autenticación
curl -X DELETE https://api.com/users/1
  -H "Authorization: Bearer TOKEN"

Eliminar recursos.

Definir cualquier método
# Método personalizado
curl -X OPTIONS https://api.com

# HEAD
curl -I https://api.com

# Cualquier verbo
curl -X CUSTOM https://api.com

Opción -X / --request.

Headers e Autenticação


4 cards
Enviar headers
curl https://api.com
  -H "Content-Type: application/json"
  -H "Accept: application/json"
  -H "X-API-Key: abc123"

# Quitar una cabecera
curl url -H "User-Agent:"

Opción -H / --header.

Basic Auth
# user:password
curl -u usuario:contrasena https://api.com

# Solo usuario (pide contraseña)
curl -u usuario https://api.com

Autenticación básica.

Bearer Token
curl https://api.com/privado
  -H "Authorization: Bearer SEU_TOKEN"

Autenticación por token (JWT/OAuth).

User-Agent y Referer
# User-Agent personalizado
curl url -A "MeuApp/1.0"

# Referer
curl url -e "https://origem.com"

# Cookies vía header
curl url -H "Cookie: id=123"

Identificación del cliente.

Enviar Dados


4 cards
JSON en el cuerpo
curl -X POST https://api.com/users
  -H "Content-Type: application/json"
  -d '{
    "nombre": "Ana",
    "email": "ana@mail.com"
  }'

Enviar un payload JSON.

JSON desde un archivo
# Leer cuerpo desde un archivo
curl -X POST https://api.com/users
  -H "Content-Type: application/json"
  -d @datos.json

Usar un archivo como cuerpo.

Formulario (form-data)
# multipart/form-data
curl -X POST https://api.com/upload
  -F "nombre=Ana"
  -F "foto=@foto.jpg"

Datos de formulario.

URL-encoded
# application/x-www-form-urlencoded
curl -X POST https://api.com/login
  --data-urlencode "user=ana"
  --data-urlencode "pass=a b c"

# -d codifica automáticamente

Datos codificados.

Download e Upload


4 cards
Descarga de archivo
# Nombre original (-O mayúscula)
curl -O https://site.com/foto.jpg

# Nombre personalizado
curl -o imagen.png https://site.com/f

# Varios archivos
curl -O url1 -O url2

Descargar archivos.

Reanudar descarga
# Continuar transferencia (-C -)
curl -C - -O https://site.com/grande.zip

Reanudar descargas interrumpidas.

Subida de archivo
# Subida vía form
curl -X POST https://api.com/upload
  -F "fichero=@documento.pdf"

# Subida binaria (PUT)
curl -X PUT https://api.com/file
  --data-binary @foto.jpg

Enviar archivos.

FTP
# Descarga vía FTP
curl -u user:pass ftp://server/f.txt

# Subida vía FTP
curl -u user:pass -T local.txt
  ftp://server/remoto.txt

Transferencias FTP.

Debug e Inspeção


4 cards
Verbose
# Detalles de la conexión
curl -v https://site.com

# Solo trace de envío/recepción
curl --trace - https://site.com

# Trace a un archivo
curl --trace log.txt url

Diagnóstico detallado.

Ver la petición enviada
# Mostrar request sin enviar
curl --trace-ascii - url

# Cabeceras de la petición
curl -v url 2>&1 | grep ">"

Inspeccionar el request.

Información de la respuesta
# Variables con -w
curl -s -o /dev/null -w \
  "Status: %{http_code}\n
   Tiempo: %{time_total}s\n
   Tamaño: %{size_download}\n" url

Métricas de la petición.

Tiempo por fase
curl -s -o /dev/null -w \
  "DNS: %{time_namelookup}\n
   Conexión: %{time_connect}\n
   TTFB: %{time_starttransfer}\n
   Total: %{time_total}\n" url

Análisis de rendimiento.

Recursos Avançados


4 cards
Cookies
# Guardar cookies
curl -c cookies.txt https://site.com

# Enviar cookies
curl -b cookies.txt https://site.com

# Cookie manual
curl -b "sesión=abc" url

Gestión de cookies.

Redirects
# Seguir redirects
curl -L http://site.com

# Máximo de redirects
curl -L --max-redirs 5 url

# Ver destino final
curl -L -o /dev/null -w "%{url_effective}" url

Seguir redirecciones.

SSL / TLS
# Ignorar certificado (prueba)
curl -k https://self-signed.com

# Certificado específico
curl --cacert cert.pem url

# Forzar versión TLS
curl --tlsv1.2 url

Seguridad SSL.

Proxy
# Usar un proxy
curl -x http://proxy:8080 url

# Proxy con autenticación
curl -x http://user:pass@proxy:8080 url

# Sin proxy para un host
curl --noproxy "localhost" url

Conexión vía proxy.

Formatação e Truques


5 cards
Formatear JSON con jq
# Formateado y coloreado
curl -s https://api.com/users | jq

# Extraer un campo
curl -s url | jq '.data.nombre'

# Array de nombres
curl -s url | jq '.[].nombre'

Procesar respuestas JSON.

Buenas prácticas
• Usar -s en scripts (sin progreso)
• Siempre -L si hay redirects
• Verificar %{http_code} en automatización
• Usar -k solo en pruebas locales
• Proteger tokens (no en historial)
• Preferir --data-urlencode para datos

Convenciones de uso.

Guardar headers en un archivo
# Cabeceras separadas
curl -D headers.txt -o corpo.html url

# Solo cabeceras
curl -sI url > headers.txt

Separar cabeceras y cuerpo.

Múltiples peticiones
# Secuencia de URLs
curl "https://api.com/page[1-3]"

# Patrón de nombres
curl -O "https://site.com/img[01-10].png"

URLs en secuencia.

Config file (.curlrc)
# ~/.curlrc
-H "Accept: application/json"
--connect-timeout 10
-L

# Usar una config específica
curl --config mi.curlrc url

Valores por defecto persistentes.