从 Perl 脚本调用一个 URL

问题描述 投票:0回答:4

我有一个 Perl 脚本,其中包含一些代码来调用一个 URL。基于通过 url 传递的参数,指向用于在数据库中存储一些数据的 servlet 的 URL。我正在使用下面的代码但未能调用 url 并且无法将数据存储在数据库中。

#!/appl/teamsite/iw-perl/bin/iwperl

for (@ARGV) { printf "%d %s\n", $i++, $_};
my $environment=$ARGV[0];
my $jobid = $ARGV[1];
my $taskID = $ARGV[2];
my $workArea= $ARGV[3];
my $jobDocument = $ARGV[4];

my $url = "http://localhost:7001/JCreationServlet?command=build"."&environment=".$ARGV[0]."&jobID=".$ARGV[1]."&taskID=".$ARGV[2]."&workArea=".$ARGV[3]."&jobDocument=".$ARGV[4];

print "Url is $url\n";

'wget '.$url;

请帮助我,以便我能够调用 URL。

perl shell servlets
4个回答
1
投票
'wget '.$url;

应该是反引号,如果你想让它被执行

`wget $url`

0
投票

在你的代码中:

'wget '.$url;

只是一个字符串。

请参考this执行外部命令。


0
投票

您可以使用`

wget $url
`,而不是您拥有的,这将解决它。但是,我建议使用 system 调用,因为这是更好的做法:

system("wget",$url);

但是,如果您出于某种原因需要输出,那么最好使用反引号并像这样捕获它:

my $response = `wget $url`;

0
投票

或者如果

wget
库没有安装使用
HTTP::Tiny
像这样:

use HTTP::Tiny;
my $response = HTTP::Tiny->new(timeout => 2)->get($url);

并像这样打印出返回值以开始重用响应:

use JSON;
my $string_response = to_json($response);
print "response is: $string_response\n";
© www.soinside.com 2019 - 2024. All rights reserved.