PerlでPOSTメソッドのHTTPアクセス実施例

2017/08/18
自分用メモ。正確性の保証なし。

説明

URL http://192.168.1.200:7180/SAVE/SEIKA にPOSTメソッドでアクセス。

Content-Type: application/x-www-form-urlencoded でPOSTされる。

POSTするデータは

使用端末の既定コードがeuc-jpなので、日本語文字列をPerl内部形式に変換している。utf8プラグマとか付けるならdecode()いらん。

レスポンスに含まれるデータは以下のように保存する。

$ perl sample.pl > seika.wav

※このサンプルは、レスポンスに wavファイルが含まれていることを想定している。

コード

sample.pl
#!/usr/local/bin/perl
 
use Encode;
use HTTP::Request::Common;
use LWP;
 
my $uri = "http://192.168.1.200:7180/SAVE/SEIKA";
my $params = [ SPEED => 1.60, PITCH=> 1.00, VOLUME => 1.00, INTONATION => 1.00, TALKTEXT => decode('euc-jp',"シャットダウン&リセットを推奨します。") ];
my $ua = LWP::UserAgent->new();
my $res = $ua->request( POST($uri, $params) );
 
  print $res->content;