
Quando prepariamo le nostre applicazioni server, indipendentemente da quale sia la loro finalità (backend per mobile, supporto a siti web o altro ancora), dobbiamo necessariamente sottoporle a test. Ci sono strumenti molto comodi che permettono di effettuare richieste HTTP di ogni genere – come Postman di cui abbiamo già parlato – ma per chi è abituato all’essenzialità della riga di comando ci si può rivolgere al classico cURL. Questo è un software dall’uso molto diretto utilizzabile con tutti i protocolli di rete più comuni: HTTP, FTP, DICT, LDAP, vari per la posta elettronica (SMTP, POP3, IMAP) e molti altri ancora, comprese le loro versioni “sicurizzate” con SSL/TLS.
E’ disponibile in tutte le distribuzioni Linux ed ha la fama del tuttofare. Vediamone alcuni esempi:
- lettura di una pagina web, l’accesso più semplice
curl http://www.devapp.it
Con questo, vedremo tutto il codice HTML corrispondente scorrere attraverso la riga di comando;
- salvataggio della pagina web letta
curl http://www.devapp.it > salva.html
il risultato sarà contenuto nel file salva.html
- interazione con servizi REST. A questo scopo, è necessario passare un metodo HTTP (opzione -X), una o più intestazioni (opzione -H) ed eventualmente dei dati (anteponendo -d). Si può condurre una prova con cURL anche utilizzando un servizio di API REST dedicato alla sperimentazione come JSONPlaceholder
curl -X POST http://jsonplaceholder.typicode.com/posts -H Content-type:application/json -d '{"title":"Mio messaggio", "username":"Pippo"}'
ed il server risponderà
{ "title": "Mio messaggio", "username": "Pippo", "id": 101 }
simulando l’inserimento dell’oggetto JSON nel database.
Oltre a queste, il comando cURL ha svariate funzionalità illustrate nella documentazione ufficiale. Non avrà l’aspetto amichevole di Postman ma per chi conosce bene il protocollo che deve utilizzare appare molto funzionale. Inoltre, essendo disponibile da riga di comando, si presta facilmente all’inclusione in script.
Alla prossima!
No Responses to “cURL: interagire con la Rete da riga di comando”