›February 10, 2005

perl で SSL (https) を使う

Category: メモ / 0 Comments: Post / View

LWPを使うと意識する必要は無いが、
Crypt-SSLeay-0.51 がインストールされていない場合には追加する必要がある。

わたしは http://search.cpan.org/CPAN/authors/id/C/CH/CHAMAS/Crypt-SSLeay-0.51.tar.gz からダウンロードした。

メモ1 - 自分のホームディレクトリなどにインストールする

% perl Makefile.PL PREFIX=/home/myname/perl/Modules
としてインストール先を指定しておき、makeする。
% make
% make test
% make install

メモ2 - @INC にインストールしたパスを追加するようスクリプトを変更する
注意としては最後のパスまで指定すること。手持ち環境では以下のようにしていしました。

BEGIN{
push(@INC, '/home/myname/perl/Modules/lib/perl5/site_perl/5.6.1/i386-linux');
}

メモ3 - 利用する

use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use HTTP::Request::Common qw(GET);
use HTTP::Cookies;

$ua = LWP::UserAgent->new;
$request = GET('https://〜〜〜〜/');
$res = $ua->request($request);
print $res->as_string . "\n";

とか

$ur = 'https://〜〜〜';
%formdata = ('NAME_A' => 'VALUE_A', 'NAME_B' => 'VALUE_B');
$request = POST($url, [%formdata]);
$res = $ua->request($request);
※ハッシュなので同一キーの複数指定ができない?

とか

$url = 'https://secure.zmap.net/entry/navi';
$request = POST($url);
$request->content('NAME_A=VALUE_B&NAME_B=VALUE_B');
$res = $ua->request($request);
※POSTデータは自分でエンコードが必要

Comments