{"id":418,"date":"2011-01-14T01:21:05","date_gmt":"2011-01-13T23:21:05","guid":{"rendered":"http:\/\/gcolpart.evolix.net\/blog21\/?p=418"},"modified":"2011-01-14T01:21:05","modified_gmt":"2011-01-13T23:21:05","slug":"faire-du-postgethead-en-ligne-de-commande","status":"publish","type":"post","link":"https:\/\/gcolpart.evolix.net\/blog21\/faire-du-postgethead-en-ligne-de-commande\/","title":{"rendered":"Faire du POST\/GET\/HEAD en ligne de commande"},"content":{"rendered":"<p>\u00c0 l&#8217;heure des webservices <a href=\"http:\/\/en.wikipedia.org\/wiki\/REST\">RESTful<\/a>, il est essentiel d&#8217;avoir des outils simples pour r\u00e9aliser tous types de requ\u00eates HTTP. Et l&#8217;outil indispensable c&#8217;est LWP (WWW Library for Perl), disponible sous tout syst\u00e8me digne de ce nom (sous Debian c&#8217;est <a href=\"http:\/\/packages.debian.org\/libwww-perl\">libwww-perl<\/a>), qui met notamment \u00e0 disposition des non-barbus les fabuleuses commandes <strong>HEAD<\/strong>, <strong>GET<\/strong>, <strong>POST<\/strong>. Rien de nouveau, mais <a href=\"http:\/\/www.evolix.fr\/serv\/infogerance.html\">l&#8217;infog\u00e9rance Evolix<\/a> utilisant quasi-quotidiennement ces commandes, il me para\u00eet utile de s&#8217;assurer que ces commandes sont entre toutes les mains des d\u00e9veloppeurs avec lesquels on travaille (et des autres ;-).<\/p>\n<p>Au del\u00e0 de la <a href=\"http:\/\/manpages.debian.net\/cgi-bin\/man.cgi?query=LWP-REQUEST\">Man Page<\/a> voici quelques exemples pour vous convaincre :<\/p>\n<pre>\r\n$ <strong>HEAD www.evolix.fr<\/strong>\r\n200 OK\r\nConnection: close\r\nDate: Tue, 28 Dec 2010 20:08:35 GMT\r\nServer: Apache\r\nVary: Accept-Encoding\r\nContent-Type: text\/html\r\nClient-Date: Tue, 28 Dec 2010 20:08:44 GMT\r\nClient-Peer: 85.31.205.43:80\r\nClient-Response-Num: 1\r\n\r\n$ <strong>HEAD -U -H \"User-Agent: Mozilla\/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)\" \\\r\n -H \"Referer: http:\/\/www.evolix.fr\/\" www.evolix.fr\/serv\/infogerance.html<\/strong>\r\nHEAD http:\/\/www.evolix.fr\/serv\/infogerance.html\r\nReferer: http:\/\/www.evolix.fr\/\r\nUser-Agent: Mozilla\/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)\r\n\r\n200 OK\r\nConnection: close\r\nDate: Thu, 13 Jan 2011 23:14:13 GMT\r\nServer: Apache\r\nVary: Accept-Encoding\r\nContent-Type: text\/html\r\nClient-Date: Thu, 13 Jan 2011 23:14:13 GMT\r\nClient-Peer: 85.31.205.43:80\r\nClient-Response-Num: 1\r\n\r\n$ <strong>GET http:\/\/www.kernel.org\/pub\/linux\/kernel\/v2.6\/linux-2.6.36.2.tar.bz2 > linux-2.6.36.2.tar.bz2<\/strong>\r\n\r\n$ <strong>GET google.fr | grep charset= | sed 's@^.*charset=\\([-a-Z0-9]*\\)\".*$@\\1@'<\/strong>\r\nISO-8859-1\r\n\r\n$ <strong>POST http:\/\/www.evolix.fr\/contacts.html<\/strong>\r\nPlease enter content (application\/x-www-form-urlencoded) to be POSTed:\r\nfrom=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok\r\n<em>Ctrl+d<\/em>\r\n\r\n$ echo -n \"from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok\" > \/tmp\/POST-DATA.txt\r\n$ <strong>POST http:\/\/www.evolix.fr\/contacts.html < \/tmp\/POST-DATA.txt<\/strong>\r\n<\/strong><\/pre>\n<p>Note : Attention, pour envoyer interactivement des donn\u00e9es en POST, il faut ensuite les valider avec <em>Ctrl+d<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c0 l&#8217;heure des webservices RESTful, il est essentiel d&#8217;avoir des outils simples pour r\u00e9aliser tous types de requ\u00eates HTTP. Et l&#8217;outil indispensable c&#8217;est LWP (WWW Library for Perl), disponible sous tout syst\u00e8me digne de ce nom (sous Debian c&#8217;est libwww-perl), qui met notamment \u00e0 disposition des non-barbus les fabuleuses commandes HEAD, GET, POST. Rien de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,72,7,69],"tags":[122,121,116],"class_list":["post-418","post","type-post","status-publish","format-standard","hentry","category-evolix","category-french","category-network","category-planet-libre","tag-http","tag-infogerance","tag-shell"],"_links":{"self":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/comments?post=418"}],"version-history":[{"count":14,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/418\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/418\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/media?parent=418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/categories?post=418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/tags?post=418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}