perlでhttp client
webアプリの開発をするようになって、テスト用にHTTP Clientを書くことが多くなりました。とは言え、まだまだwebの知識が無いため、モジュールの力を借りてゴリゴリ書いています。
まずはGET METHOD。
use HTTP::Request::Common qw/GET/; use LWP::UserAgent; my $url = "http://www.google.com/"; my $req = GET($url); my $ua = LWP::UserAgent->new; my $res = $ua->request($req); if ($res->is_success) { print $res->decoded_content; }
モジュールのおかげで、直感的に分かりやすいコードになっています。これをPOST METHODに修正するのも簡単で、
use HTTP::Request::Common qw/POST/; use LWP::UserAgent; my $url = "http://***/"; my $query = [ id => "0123", name => "mythosil" ]; my $req = POST($url, $query); my $ua = LWP::UserAgent->new; my $res = $ua->request($req); if ($res->is_success) { print $res->decoded_content; }
となります。クエリの部分($query)はハッシュリファレンスで渡せば、内部でうまいこと書き換えてくれます。
これ以外にもいろんな書き方がありますが、個人的にはこういう書き方で統一しています。