Perl で、POST したい。

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&gt&amp;<パラメータ名2>=<値2&gt&amp;<パラメータ名3>=<値3&gt&amp;…といった形で、「&amp;」 を用いていくつものパラメータと値の組み合わせをつなげることが出来る。 </p>

以下は、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;

Comments

Submitted by 匿名さん (not verified) on 2010/01/20 - 03:27

Permalink

外部サイトへは可能ですが、同一サイト内では、httpsのcgiを探しに行きます。 このようなことをためしたことはありますか?

Submitted by 山田 (not verified) on 2010/01/20 - 03:41

Permalink

他のドメインであれば可能ですが、同一サイト内で行うと、httpsのファイルを探しに行きます。 このようなことを試したことはありますか