La abreviatura cURL puede significar Client for URLs o Curl URL Request Library. Se trata de un programa de línea de comandos con la biblioteca correspondiente incluida y que permite la transferencia de datos entre ordenadores interconectados. El software cURL fue desarrollado por el programador Daniel Stenberg con el objetivo inicial de proporcionar datos relativos a los tipos de cambio, extraídos de diversas páginas web, a los participantes de un chat. Gracias a su licencia MIT abierta, cURL puede ser utilizado de forma libre y ya es compatible con muchos sistemas operativos, entre ellos Windows 10, que desde su actualización 1803 en abril de 2018 también dispone de cURL. La detallada guía Everything curl es tan solo una muestra de las muchas posibilidades que ofrece esta herramienta a los programadores. Sigue leyendo para aprender, a través de prácticos ejemplos, de lo que cURL es capaz en Windows y seguro que podrás ponerte manos a la obra con algunas ideas.
Al igual que en otros sistemas operativos, cURL para Windows está compuesto del archivo ejecutablecurl.exe y de la biblioteca libcurl, una API escrita en lenguaje C que implementa las muchas funciones de cURL. Los comandos se ejecutan a través del símbolo de sistema (es decir, la consola de línea de comandos) de Windows. Para ello existe una estructura de comandos específica:
C:\Users\UsuarioPrueba>curl [options …] <url>
En este caso, <url> es la dirección de la página web con la que se quiere interactuar. Con [options …] se especifican las órdenes para ejecutar procesos como la solicitud de páginas web, las cargas y descargas, los postings y el uso de formularios, entre muchos otros. Muchas de las opciones pueden escribirse de dos maneras diferentes:
Una con un signo de menos y letras
Una con dos signos de menos y una clave de comando
Así, por ejemplo, para usar el método GET, puede introducirse tanto -G como --get.
Comprobar la disponibilidad y la versión de cURL
En primer lugar, comprueba si tu sistema Windows dispone de cURL y, si es así, de qué versión se trata. Para hacerlo, abre el símbolo de sistema o consola de línea de comandos introduciendo cmden la barra de búsqueda de Windows. A continuación, introduce
C:\Users\UsuarioMuestra>curl --version
para ver la información sobre la versión de cURL de tu Windows 10.
Mostrar la versión de cURL de la que dispone Windows 10. A: versión de cURL integrada en la actualización 1903 del sistema. B: versión actual de cURL instalada a posteriori.
A medida que se ha ido desarrollando cURL, ha ido aumentando el número de protocolos que pueden utilizarse, lo cual se puede observar claramente si se comparan las dos versiones mostradas en la imagen:
7.55.1 (agosto de 2017)
7.70.0 (abril de 2020)
dict
dict
file
file
ftp
ftp
ftps
ftps
–
gopher
http
http
https
https
imap
imap
imaps
imaps
–
ldap
–
ldaps
–
mqtt
pop3
pop3
pop3s
pop3s
–
rtsp
–
scp
–
sftp
–
smb
–
smbs
smtp
smtp
smtps
smtps
telnet
telnet
tftp
tftp
De esta forma se amplían también las posibilidades de transferir datos entre distintas redes.
Instalar la versión actual de cURL
La versión de cURL integrada en Windows está pensada como ruta del sistema, accesible tanto para el administrador como para cualquier usuario. Sin embargo, para utilizar todos los protocolos disponibles en el software, debe estar instalada la versión actual de cURLpara Windows. La manera más fácil de conseguirlo es descargando la versión actual como archivo ZIP desde la página web de los desarrolladores. En dicha página puedes encontrar también información acerca de los cambios que se han aplicado (changelog). A continuación, en el explorador de archivos, se extrae el archivo en forma de directorio, dándole el nombre de curl, por ejemplo. Este directorio se incorpora luego también al disco duro del sistema, como podría ser con la ruta C:\curl\. Allí se copian entonces todos los archivos y directorios extraídos de la descarga de cURL. El archivo ejecutable curl.exe está ubicado en el subdirectorio\bin, en el que también se encuentra el archivo de certificado curl-ca-bundle.crt, necesario para utilizar, entre otros, los protocolos SFTP y HTTPS.
A continuación, abre la consola de línea de comandos de Windows e introduce lo siguiente:
# Saltar dos niveles hacia arriba en el directorio
C:\Users\UsuarioMuestra>cd..
C:\Users>cd..
# Saltar al directorio indicado
C:\cd curl\bin
C:\curl\bin>
Ahora, en la posición de entrada estará disponible toda la gama de funciones de cURL para Windows, que utilizaremos para explicar más ejemplos. A modo de prueba, solicita ver la versión del software tal y como se ha indicado anteriormente. El tipo de actualización descrito en este caso funciona en Windows 7, 8 y 10. También puedes integrar la versión actual de cURL en el sistema: para ello debes crear una ruta de sistema, pero también encontrar la ruta de la versión antigua (!) y desactivarla.
cURL con ejemplos prácticos
cURL se usa en Windows mediante la introducción de comandos en el símbolo del sistema (consola de línea de comandos). Para ver la información básica al respecto, introduce el siguiente comando:
C:\curl\bin>curl --help
Con otro comando, en cambio, se puede mostrar el manual completo:
C:\curl\bin>curl --manual
Luego, según cómo pretendas usar esta información, transfiere los resultados de estos comandos usando copiar y pegar a un archivo .txt, en una carpeta separada. De esta manera, podrás acceder a los comandos fácilmente con la función de búsqueda del documento, sin necesidad de usar la consola cada vez.
Consejo
Conviene usar un editor de texto en Windows para anotar los comandos de cURL, comprobarlos y copiarlos luego en el símbolo del sistema. De esta forma, te ahorras la frustrante tarea de teclear cada vez que se cuele algún error. Además, así puedes guardar tus propias series de comandos con tus datos de acceso para futuras acciones.
Otra manera aún más rápida de hacerlo es la siguiente:
C:\curl\bin >curl --help | clip
El comando clip precedido de una barra (|) copia automáticamente en el portapapeles de Windows los resultados que se muestren en ese momento en la consola de línea de comandos, de forma que luego se puede pegar simplemente el contenido directamente con [Ctrl] + [V] en un documento de texto vacío y guardarlo.
Guardar datos de una página web de forma local
Para guardar información acerca de una página web en un archivo local, basta con unos sencillos pasos en cURL. El archivo con los datos en cuestión recibirá el nombre de infos.html y deberá estar ubicado en el mismo directorio del ordenador local en el que se haya guardado la instalación de cURL. En Windows, cURL utiliza para ello la opción -o (una letra o minúscula, no un cero).
curl -o infos.html https://www.ntv.de/
Este comando generará un archivo de más de 700 Kilobytes con el estado exacto de la página web de noticias tal y como se encuentre al realizar la solicitud.
La solicitud realizada como ejemplo de la página web www.ntv.de genera un archivo con todo el contenido que se encuentra entre las etiquetas <html>…</html>. En este caso, la representación del archivo de 720 kB ha sido acortada en gran medida usando puntos suspensivos.
Al abrir entonces este archivo de la unidad local en un navegador, se muestra la página web en el estado en el que fue guardada.
Este proceso funciona también con archivos sueltos de un servidor web. Tras la descarga, además, debe cambiarse el nombre del archivo ref.pdf por referencias.pdf :
curl -o referencias.pdf https://mipaginaweb.tld/ref.pdf
o bien
curl --output referencias.pdf https://mipaginaweb.tld/ref.pdf
Mostrar la cabecera de una página web
Para poder ver el contenido de la cabecera de una página web (que se encuentra entre las etiquetas <head>…</head> en HTML) se utiliza una opción antes de la dirección en cuestión (I = i mayúscula):
curl --head https://google.com
#o bien
curl -I https://google.com
Ejemplo de solicitud de la cabecera de la página web de Google.
Obtener información más avanzada
Para poder ver aún más datos mediante cURL, puedes añadir la opción-v o bien --verbose. De esta manera obtendrás, entre otras muchas cosas, información acerca de la dirección IPv6 utilizada, el puerto y los certificados aplicados.
curl -I https://google.com -v
#o bien
curl --head https://google.com --verbose
Cargar datos mediante el protocolo SFTP
Llegados a este punto, el comando cURL correspondiente se vuelve algo más complejo, ya que en SFTP deben transferirse los nombres de usuario al servidor para iniciar sesión y verificar la identidad. Se empieza de la siguiente forma:
En la ventana del símbolo del sistema de Windows se puede seguir el proceso de subida. El archivo cargado debería encontrarse entonces en el directorio raíz de tu servidor FTP. Si hubieras cometido algún error al introducir el comando, cURL para Windows reacciona rápidamente con curl: (67) Authentication failure. Si se intenta esta misma transferencia de datos con la versión más antigua mencionada anteriormente, cURL 7.55.1, el mensaje correspondiente sería curl: (1) Protocol "sftp" not supported or disabled in libcurl.
Descargas usando el protocolo SFTP y cURL
La descarga puede realizarse fácilmente también con la versión actual de cURL, sin necesidad de un cliente FTP especial, naturalmente, siempre que el archivo que se quiera descargar exista en el servidor FTP.
cURL se ha convertido en una herramienta muy poderosa, por lo que debes ser cuidadoso al utilizarla en tu propio entorno de servidor. Disponer de una copia de seguridad de los datos y de un medio de recuperación del sistema Windows puede ser de gran ayuda si algo sale mal.
La previsión meteorógica con cURL
Usando símbolos ASCII es posible presentar datos de forma más atractiva (y, por lo tanto, más útil). Como muestra de ello, se puede observar esta presentación de la previsión meteorológica local solicitada con cURL:
curl http://wttr.in/LOCATION
La solicitud en cURL para Windows del sitio web wttr.in da como resultado la previsión meteorológica de los tres días siguientes. Tras la indicación Location: aparecen los datos de la ubicación geográfica en cuestión.
Esta previsión puede mostrarse para cualquier lugar que se desee.
cURL y PHP: una buena pareja
Para poder utilizarse de forma práctica en las tareas de programación rutinarias, cURL también está disponible en PHP. Puedes comprobarlo en tu servidor web con la siguiente solicitud PHP:
<?php
phpinfo();
?>
Guarda luego este código como un archivo con el nombre phpinfo.php y ubícalo en el directorio raíz de tu servidor web. De esta forma podrás obtener toda la información acerca de las opciones disponibles en tu versión de PHP, incluyendo la disponibilidad de cURL, con solo abrir este archivo en el navegador con la ruta ´https://mipaginaweb.tld/phpinfo.php'.
El archivo que contiene la información de PHP revela también si cURL está activado en la versión PHP en cuestión.
Para que se muestre entonces una página web con información adicional, bastan unas pocas líneas de código PHP. Como ejemplo, en este caso hemos pedido que se muestre la página web de Microsoft en español:
<?php
$site = curl_init(); //iniciar el cURL handler
curl_setopt($site, CURLOPT_URL, "https://www.microsoft.com/es-es/"); //Indicar URL
curl_setopt($site,CURLOPT_RETURNTRANSFER,true); //Establecer parámetros opcionales
curl_setopt($site,CURLOPT_HEADER, true); //Mostrar cabecera; suprimir con false
$result=curl_exec($site); //ejecutar el cURL en sí
curl_close($site);
echo $result;
?>
Guarda entonces este código en el directorio raíz de tu servidor web con el nombre de curlinfo.php, por ejemplo.
El código PHP muestra la página web con los datos adicionales de la cabecera, extraídos del código fuente.
Puesto que en el archivo tan solo está almacenado el código PHP en sí, las informaciones de la cabecera se muestran en el tipo de letra propio del navegador, es decir, en otro formato. Este tipo de rutina es el inicio de la incrustación de datos de otras páginas web en la página propia mediante PHP y cURL.
PowerShell vs. símbolo del sistema
Windows 10 ha incorporado otra poderosa herramienta de desarrollo: Windows PowerShell. Se puede acceder a ella a través del menú del icono de Windows y puede reconocerse por las letras PS que aparecen al inicio de la ruta de Windows. En el futuro, se pretende que Windows PowerShell reemplace la llamadaconsolade línea de comandos o símbolo del sistema. Esta nueva herramienta ofrece, además, una mayor gama de posibilidades para administrar páginas web y servidores. Sin embargo, solo permite usar algunos de los comandos cURL, mientras que el resto debe traducirse para surtir efecto en PowerShell.
Por suerte, la función traductora está integrada directamente en PowerShell y puede activarse con GetAlias seguido del comando cURL.
PS C:\WINDOWS\system32> Get-Alias curl
# genera el resultado
CommandType Name Version Source
----------- ---- ------- ------
Alias curl -> Invoke-WebRequest
De esta forma podemos ver qué comando de PowerShell permite aplicar cURL a una página web:
Introducción a netstat: ¿qué es netstat y cómo funciona?
Herramientas
Las redes de ordenadores están interconectadas mediante Internet. Para poder conectarse, tanto el sistema de envío como el de recepción deben facilitar interfaces de transmisión, es decir, los denominados puertos. Con netstat, el programa de líneas de comandos, se pueden averiguar qué puertos del sistema están abiertos y cuáles son las conexiones activas, de forma que se minimice el riesgo de...
El programa de líneas de comandos Ping está disponible en todos los sistemas operativos habituales. De la mano de este detallado tutorial te mostramos cómo ejecutar Ping en Windows a través del símbolo del sistema y cómo utilizar el programa en el marco del diagnóstico de red para comprobar la conexión entre dos ordenadores.
El cURL es una herramienta importante para el desarrollo web. Con él, el desarrollador puede interactuar con sitios web directamente a través de la línea de comandos. De este modo, se pueden probar y depurar API y servidores y, a menudo, automatizar tareas pendientes. A continuación, te explicamos lo que necesitas saber si deseas dar el salto a cURL en Linux.