perl - 我怎样才能将信息转发到另一个网站并获得其在 Perl 中的响应?

标签 perl web-services

在 Perl 脚本中(使用 Ubuntu)我想做类似的事情

    use Blah;
    ...
    ...
    my $response = 
       &Blah::Fetch($URL, {'method'=>'POST', 'parameters' => \%params});

为了方便我写的看起来很像 Prototype.js ajax 调用,但显然我们使用的是 Perl 而不是 Javascript,我们在服务器上而不是浏览器上,调用者想要阻止直到我们从远程服务器获取应答或超时。在服务器或超时错误的情况下,defined($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;

有关响应元素,请在此处查看更多信息:http://kobesearch.cpan.org/htdocs/libwww-perl/HTTP/Request.html

关于perl - 我怎样才能将信息转发到另一个网站并获得其在 Perl 中的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286277/

相关文章:

perl - 草莓 perl:没有 File::Tail.pm。 CPAN 安装模块失败

regex - 无法识别的转义\R 在 test.pl 第 7 行通过

java - 在 Java 世界中创建新的 RPC/web 服务的最佳方法?

perl - 如何在 CGI 脚本中调用另一个 Perl CGI 脚本?

regex - 用 & 替换 & 的正则表达式

c# - NuGet 包 : how to add references to webservices?

java - 来自 java 桌面应用程序的 Web 服务

java - Axis 异常 : o. a.axis2.transport.http.HTTPSender.sendViaPost(196) - 无法发送 ViaPost - 连接被拒绝

c# - 使用 Silverlight/IIS 的双工轮询的可扩展性

Perl打开文件问题