curl: cos’è e come fare richieste HTTP, API e download da riga di comando

curl: cos’è e come fare richieste HTTP, API e download da riga di comando

Il comando curl è uno strumento essenziale per chi lavora con le reti, specialmente per sviluppatori e sistemisti. Questa utility da riga di comando consente di effettuare richieste HTTP, interagire con API e scaricare file direttamente dal terminale. In questo articolo, esploreremo in dettaglio cos’è curl, come funziona e come utilizzarlo per soddisfare diverse esigenze di rete.

Cos’è curl?

curl è un software open source che permette di trasferire dati da o verso un server utilizzando vari protocolli, tra cui HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP e altri. È disponibile su diverse piattaforme, inclusi Linux, macOS e Windows, rendendolo uno strumento versatile e ampiamente utilizzato. La sua semplicità d’uso e le sue potenti funzionalità lo rendono ideale per testare e interagire con le API, scaricare file e automatizzare compiti di rete.

Installazione di curl

La maggior parte delle distribuzioni Linux include curl preinstallato. Tuttavia, se non è presente, puoi installarlo facilmente. Ecco come farlo su alcune delle distribuzioni più comuni:

Su Ubuntu/Debian

sudo apt update
sudo apt install curl

Su CentOS/Fedora

sudo yum install curl

Su macOS

Su macOS, curl è già installato. Puoi verificare la versione con il comando:

curl --version

Su Windows

Su Windows, puoi scaricare curl dal sito ufficiale o utilizzare il Windows Subsystem for Linux (WSL) per accedere a una versione Linux di curl.

Utilizzo di curl per richieste HTTP

Una delle principali funzionalità di curl è la possibilità di effettuare richieste HTTP. Il comando base per effettuare una richiesta GET è il seguente:

curl http://example.com

Questo comando restituirà il contenuto della home page del sito specificato. Puoi anche salvare il risultato in un file utilizzando l’opzione -o:

curl -o homepage.html http://example.com

Opzioni comuni di curl

curl offre una vasta gamma di opzioni che puoi utilizzare per personalizzare le tue richieste. Ecco alcune delle più comuni:

Richiesta POST

Puoi inviare dati a un server utilizzando una richiesta POST. Ad esempio, per inviare dati JSON a un’API, puoi utilizzare il seguente comando:

curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://api.example.com/resource

Autenticazione

Se l’API richiede autenticazione, puoi includere le credenziali nel comando. Ad esempio, per l’autenticazione Basic:

curl -u username:password http://api.example.com/protected

Headers personalizzati

Puoi anche aggiungere headers personalizzati alle tue richieste. Ad esempio:

curl -H "Authorization: Bearer token" http://api.example.com/resource

Interagire con le API

Le API sono diventate una parte fondamentale dello sviluppo software moderno. Con curl, puoi facilmente testare e interagire con le API. Ecco alcuni esempi pratici:

Ottenere dati da un’API

Per ottenere dati da un’API REST, puoi utilizzare una semplice richiesta GET. Supponiamo di voler ottenere informazioni su un utente:

curl -X GET http://api.example.com/users/1

Questo comando restituirà i dati dell’utente con ID 1.

Inviare dati a un’API

Se desideri creare un nuovo utente, puoi inviare una richiesta POST con i dati necessari:

curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "email":"john@example.com"}' http://api.example.com/users

Utilizzare il metodo PUT

Per aggiornare i dati di un utente esistente, puoi utilizzare il metodo PUT:

curl -X PUT -H "Content-Type: application/json" -d '{"name":"John Doe"}' http://api.example.com/users/1

Scaricare file con curl

Un’altra funzionalità utile di curl è la possibilità di scaricare file. Puoi farlo semplicemente specificando l’URL del file che desideri scaricare.

Scaricare un file

Per scaricare un file, utilizza l’opzione -o per salvare il file con un nome specifico:

curl -o file.zip http://example.com/file.zip

Scaricare un file con il resume

Se il download viene interrotto, puoi riprendere il download utilizzando l’opzione -C -:

curl -C - -o file.zip http://example.com/file.zip

Debugging e troubleshooting con curl

Quando si lavora con curl, può essere utile diagnosticare problemi di rete. Puoi utilizzare l’opzione -v per abilitare la modalità verbose, che fornisce dettagli sulla richiesta e sulla risposta:

curl -v http://example.com

Visualizzare solo gli headers

Se desideri visualizzare solo gli headers di risposta, puoi utilizzare l’opzione -I:

curl -I http://example.com

Conclusione

In sintesi, curl è uno strumento potente e versatile per effettuare richieste HTTP, interagire con API e scaricare file dalla riga di comando. La sua semplicità d’uso e le sue numerose opzioni lo rendono uno strumento indispensabile per sviluppatori e sistemisti. Che tu stia testando un’API, scaricando file o diagnosticando problemi di rete, curl ti offre le funzionalità necessarie per svolgere il tuo lavoro in modo efficiente. Inizia a esplorare le potenzialità di curl e scopri come può semplificare le tue attività quotidiane nel mondo della tecnologia.