我如何将信息转发到另一个网站,并以Perl获得其响应?
在Perl脚本(使用Ubuntu)中,我想做如下操作我如何将信息转发到另一个网站,并以Perl获得其响应?,perl,web-services,Perl,Web Services,在Perl脚本(使用Ubuntu)中,我想做如下操作 use Blah; ... ... my $response = &Blah::Fetch($URL, {'method'=>'POST', 'parameters' => \%params}); 我写这篇文章是为了方便起见,看起来很像Prototype.js ajax调用,但显然我们使用的是Perl而不是Javascript,我们在服务器上而不是浏览器上,调用方希望阻止,
use Blah;
...
...
my $response =
&Blah::Fetch($URL, {'method'=>'POST', 'parameters' => \%params});
我写这篇文章是为了方便起见,看起来很像Prototype.js ajax调用,但显然我们使用的是Perl而不是Javascript,我们在服务器上而不是浏览器上,调用方希望阻止,直到我们从远程服务器获得应答或超时。在服务器或超时错误的情况下,定义的($response)应为false。如果有一种获取HTTP状态的方法,这很好,但是只要知道请求失败就足够了。它应该能够执行GET或POST操作
我知道我可以通过使用system和wget来实现这一点,但这是一个难题
在Perl中执行此任务的最佳方法是什么
是否有一个漂亮整洁的Perl接口 您可以使用HTTP::Request
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->timeout(3);
my $req = (POST 'http://stackoverflow.com',
["param1" => $var1,
"param2" => $var2]);
$response = $ua->request($req);
$content = $response->content;
exit;
有关响应元素,请参见此处的更多信息:事实上的方法是与请求一起传递的。这些库通常包含在Perl捆绑包中,但也可以通过。是处理大多数简单web请求的最基本模块
这两方面的教程都很常见,请尝试。LWP还提供LWP::Simple,如果您的需求是基本的。您可以假设远程网站不需要登录,也不需要\%params中没有的任何东西,如cookies或state。如果有$response的解析函数也很好,例如,从JSON回复中提取值——这样我们就不必费力地破译头等等。