参考:
http://www.willmaster.com/library/manage-forms/using_perl_to_submit_a_form.php
http://www.oschina.net/code/snippet_12_854
有时需要在perl中非交互地调用已有的cgi来完成一定的功能,此时需要模拟一个http请求来调用cgi。
get方式调用:
1
use HTTP::Request::Common;
2 use LWP::UserAgent;
3 $user_agent = LWP::UserAgent->new;
4 $request = GET ' http://clearcase/~xhzhu/cgi/cgireader.cgi?text1=hello&text2=here ';
5 $response = $user_agent->request( $request);
6 print $response->as_string;
2 use LWP::UserAgent;
3 $user_agent = LWP::UserAgent->new;
4 $request = GET ' http://clearcase/~xhzhu/cgi/cgireader.cgi?text1=hello&text2=here ';
5 $response = $user_agent->request( $request);
6 print $response->as_string;
post方式调用:
1
use HTTP::Request::Common;
2 use LWP::UserAgent;
3 $user_agent = LWP::UserAgent->new;
4 $request = POST ' http://clearcase/~xhzhu/cgi/cgireader.cgi ',
5 [text1 => ' Hello ', text2 => ' there '];
6 $response = $user_agent->request( $request);
7 print $response->as_string;
2 use LWP::UserAgent;
3 $user_agent = LWP::UserAgent->new;
4 $request = POST ' http://clearcase/~xhzhu/cgi/cgireader.cgi ',
5 [text1 => ' Hello ', text2 => ' there '];
6 $response = $user_agent->request( $request);
7 print $response->as_string;
cgireader.cgi:
1
#
!/usr/local/bin/perl
2 use CGI;
3
4 $co = new CGI;
5
6 print $co->header,
7
8 $co->start_html(
9 -title=> ' CGI Example ',
10 -author=> ' yourName ',
11 -BGCOLOR=> ' white ',
12 - LINK=> ' red '
13 );
14
15 if ( $co->param()) {
16 print
17 " You entered this text: ",
18 $co->em( $co->param( ' text1 ')),
19 " ",
20 $co->em( $co->param( ' text2 ')),
21 " . ";
22 } else {
23 print " Sorry, I did not see any text. ";
24 }
25 print $co->end_html;
2 use CGI;
3
4 $co = new CGI;
5
6 print $co->header,
7
8 $co->start_html(
9 -title=> ' CGI Example ',
10 -author=> ' yourName ',
11 -BGCOLOR=> ' white ',
12 - LINK=> ' red '
13 );
14
15 if ( $co->param()) {
16 print
17 " You entered this text: ",
18 $co->em( $co->param( ' text1 ')),
19 " ",
20 $co->em( $co->param( ' text2 ')),
21 " . ";
22 } else {
23 print " Sorry, I did not see any text. ";
24 }
25 print $co->end_html;
完!