Archive for January, 2011

Faire du POST/GET/HEAD en ligne de commande

Friday, January 14th, 2011

À 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