我有一个 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。
'wget '.$url;
应该是反引号,如果你想让它被执行
`wget $url`
您可以使用`
wget $url
`,而不是您拥有的,这将解决它。但是,我建议使用 system 调用,因为这是更好的做法:
system("wget",$url);
但是,如果您出于某种原因需要输出,那么最好使用反引号并像这样捕获它:
my $response = `wget $url`;
或者如果
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";