- 締切済み
POSTでデータを送信する方法。
他のサーバーのCGIに対してPOSTでデータを送信する方法を探しています。 Perlバージョンは5.8 使用可能モジュールはPerl5.8 標準モジュール もしくはPurePerlモジュール この環境でPOSTを扱う方法をご存知でしたら、教えていただきたく思います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ytse
- ベストアンサー率50% (1/2)
socket は標準モジュールですよね (自信なし) 少々面倒ですが、 http://www.7key.jp/program/perl/study3.html のように直にソケットで組むのはどうでしょうか.
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1>標準モジュールではなく すみませんでした。 LWPっててっきり標準モジュールだと思い込んでいました。 自分でも確認してみたのですが、標準モジュールではありませんでした。 よく確認もせずに回答して申し訳ありません。
- moon_night
- ベストアンサー率32% (598/1831)
POSTでデータ送信でしたら、以下のHTMLでできます。 <form action="URL" method="POST"> <input type="submit" name="name" value="Send"> </form> 自分のサーバでも他人のサーバでもURLさえ変えれば問題ありません。 (他のサイトからのデータを受け取らないCGIもありますが、それは別として。) Perlは関係ありません。 # やりたいのは #1 さんの答えなんだろうなぁ・・・
お礼
回答ありがとうございます。 今回は、サーバーが返す値がHTMLではなくそのままでは読めないことと、帰ってきた値でさらに処理が必要なためPerlでアクセスすることを目的としています。 そのため、この方法を使用することが出来ません。 今回はIO::Socket::INETを使用することにします。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
use LWP::UserAgent; $ua = LWP::UserAgent->new(); $response=$ua->post("http://www.where.ne.jp/post.cgi", { "formName1" => "value1", "formName2" => "value2" }); print $response->content;
お礼
回答ありがとうございます。 この方法は凄く簡単で魅力的なのですが、標準モジュールではなく、サイズが700Kバイトあるため、今回は、標準モジュールIO::Socket::INETを使用することにしました。 今後、標準モジュールに追加されましたら使用することにします。
お礼
回答ありがとうございます。 Socketモジュールを確認しました。 現在、別の方法でアクセスをしているため、モジュールの内容を確認し、状況に応じて選択していこうと思います。