我如何将信息转发到另一个网站,并以Perl获得其响应?

我如何将信息转发到另一个网站,并以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,我们在服务器上而不是浏览器上,调用方希望阻止,

在Perl脚本(使用Ubuntu)中,我想做如下操作

    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回复中提取值——这样我们就不必费力地破译头等等。