À l’heure des webservices RESTful, il est essentiel d’avoir des outils simples pour réaliser tous types de requêtes HTTP. Et l’outil indispensable c’est LWP (WWW Library for Perl), disponible sous tout système digne de ce nom (sous Debian c’est libwww-perl), qui met notamment à disposition des non-barbus les fabuleuses commandes HEAD, GET, POST. Rien de nouveau, mais l’infogérance Evolix utilisant quasi-quotidiennement ces commandes, il me paraît utile de s’assurer que ces commandes sont entre toutes les mains des développeurs avec lesquels on travaille (et des autres ;-).
Au delà de la Man Page voici quelques exemples pour vous convaincre :
$ HEAD www.evolix.fr 200 OK Connection: close Date: Tue, 28 Dec 2010 20:08:35 GMT Server: Apache Vary: Accept-Encoding Content-Type: text/html Client-Date: Tue, 28 Dec 2010 20:08:44 GMT Client-Peer: 85.31.205.43:80 Client-Response-Num: 1 $ HEAD -U -H "User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)" \ -H "Referer: http://www.evolix.fr/" www.evolix.fr/serv/infogerance.html HEAD http://www.evolix.fr/serv/infogerance.html Referer: http://www.evolix.fr/ User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart) 200 OK Connection: close Date: Thu, 13 Jan 2011 23:14:13 GMT Server: Apache Vary: Accept-Encoding Content-Type: text/html Client-Date: Thu, 13 Jan 2011 23:14:13 GMT Client-Peer: 85.31.205.43:80 Client-Response-Num: 1 $ GET http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.bz2 > linux-2.6.36.2.tar.bz2 $ GET google.fr | grep charset= | sed 's@^.*charset=\([-a-Z0-9]*\)".*$@\1@' ISO-8859-1 $ POST http://www.evolix.fr/contacts.html Please enter content (application/x-www-form-urlencoded) to be POSTed: from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok Ctrl+d $ echo -n "from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok" > /tmp/POST-DATA.txt $ POST http://www.evolix.fr/contacts.html < /tmp/POST-DATA.txt
Note : Attention, pour envoyer interactivement des données en POST, il faut ensuite les valider avec Ctrl+d