PHP で SSL 越しの POST ができない、というドキュメントがちらほら見られたので、Perl でも障害になりうる場所かな、とか思っていたら見事にハマる。
ここで言う POST は、HTML の submit ボタンを押下して POST 、という流れではなく、スクリプトを実行すると、ウェブサーバへパラメータが POST されるというもの。
つまりトリガーが違うのね。
ここで言う POST は、HTML の submit ボタンを押下して POST 、という流れではなく、スクリプトを実行すると、ウェブサーバへパラメータが POST されるというもの。
つまりトリガーが違うのね。
HTTP だと Perl の Socket:: というライブラリを利用することで可能だったのだが、HTTPS だと上手く行かなかった。サーバから返されるエラーメッセージには、クライアントが SSL に対応していないとのこと。
なので LWP と HTTP を使うこととなった。
こいつを実行すると、https://www.example.jp/hoge.php にパラメータが POST される。
PHP の場合は $_POST["ss"] で "パラメータだこの野郎!!" が参照できる。
# これで SSL 通信ができない場合には
# 補足を参照。
なので LWP と HTTP を使うこととなった。
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common qw(POST);
$ss = "パラメータだこの野郎!!";
my $url = 'https://www.example.jp/hoge.php';
my %formdata;
$formdata{'ss'} = $ss;
my $request = POST($url,[%formdata]);
$request->init_header('User-Agent' => 'Linux');
my $ua = LWP::UserAgent->new;
my $res = $ua->request($request);
print $res->as_string;
exit;
こいつを実行すると、https://www.example.jp/hoge.php にパラメータが POST される。
PHP の場合は $_POST["ss"] で "パラメータだこの野郎!!" が参照できる。
# これで SSL 通信ができない場合には
# 補足を参照。