- ベストアンサー
CGIから別のCGIへPostするには?
こんにちは。 a.cgiにアクセスがあったらb.cgiに<data=hoge>というデータを postしたいのですが、どうすればいいのですか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
CGIの言語がPerlだとして、 LWP HTTP::Request::Common を使う例。 use LWP::UserAgent; use HTTP::Request::Common qw(POST); $url = "http://hogehoge/cgi-bin/b.cgi"; %formdata = ('data' => 'hoge'); $request = POST($url,[%formdata]); $ua = LWP::UserAgent->new; $res = $ua->request($request);
その他の回答 (3)
- Ethersky
- ベストアンサー率71% (168/235)
書き忘れたのでもうひとつ > $url = "b.cgi"; とされていますが、これではダメです。 LWPは普通のブラウザ同様にHTTPでアクセスするものですから http://~とちゃんとURLで記述してください。 (そもそもそうでないとPOST/GETで投げることなんてできません)
- Ethersky
- ベストアンサー率71% (168/235)
> 以下のメッセージが出ました。 そのまんまエラーメッセージの通りです。 LWP::UserAgentがない(インストールされていない)ということなのでlibwwwperl(LWP)をインストールしてください。 http://search.cpan.org/~gaas/libwww-perl-5.805/
お礼
ありがとうございます。 レンタルサーバーでインストールできないのであきらめます。 ありがとうございました。
- venzou
- ベストアンサー率71% (311/435)
GETは不可ですか?
お礼
ありがとうございます。 ポスト先は私の管理ではないので不可です
お礼
ありがとうございます。 ##################################### #!/usr/bin/perl use LWP::UserAgent; $url = "b.cgi"; %formdata = ('data' => 'hoge'); $request = POST($url,[%formdata]); $ua = LWP::UserAgent->new; $res = $ua->request($request); #################################### としましたが、以下のメッセージが出ました。 Can't locate LWP/UserAgent.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./a.cgi line 2. BEGIN failed--compilation aborted at ./a.cgi line 2. これはどうしようもないのでしょうか?