Perl で POST するには、LWP で
my $req = HTTP::Request->new(POST => $url);
として URL を指定し、
$req->content_type('application/x-www-form-urlencoded');
$req->content('Entity=Flight&ContractID=490&Enroute=N&FlightCategory=...');
のように POST するデータを与えればよい。サーバ(CGI スクリプト)に渡すパラメータは、URL の 「?」 の後に続き、<パラメータ名1>=<値1>&<パラメータ名2>=<値2>&<パラメータ名3>=<値3>&…といった形で、「&」 を用いていくつものパラメータと値の組み合わせをつなげることが出来る。
以下は、FryteComm というサイトにアクセスして、XML で現在のフライト状況を取得するサンプルである。飛行機が遅れているかどうかの状況がわかる。
使用するモジュール
use LWP::UserAgent;
#!/usr/bin/perl -w
use LWP::UserAgent;
our $ua = LWP::UserAgent->new;
our $url = 'https://applecomputer:apc0606jb@flytesource.flytecomm.com/FlyteSourceGeneratorWebApp/Application';
our $query_string = 'Entity=Flight&ContractID=490&Enroute=N&FlightCategory=COM&DataView=detail&DepartureAirportCode=SFO&ArrivalAirportCode=NRT&AirlineCode=UA&FlightNumber=837';
my $req = HTTP::Request->new(POST => $url);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query_string);
my $res = $ua->request($req);
print $res->as_string;
1;
トラックバック URL:
https://perltips.twinkle.cc/trackback/77