2013-01-17 112 views
0

我有一個Perl腳本,其中包含一些代碼來調用一個URL。指向一個servlet的URL,用於根據通過url的參數存儲數據庫中的一些數據。我正在處理下面的代碼,但未能調用url並且未能將數據存儲在數據庫中。從Perl腳本調用一個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。

+0

那個尷尬的時刻,我無法編輯代碼格式的散文,以超出代碼格式。 – PinkElephantsOnParade

回答

1
'wget '.$url; 

應該是反引號,如果你希望它被執行

`wget $url` 
+0

迪斯科:我用'wget $ url'嘗試過,但仍然無法調用url – rand

+0

您可以嘗試從反引號中捕獲輸出並將其打印出來嗎?例如我的$ output ='wget $ url';打印「OUTPUT \ n $輸出\ n」; –

0

在您的代碼:

'wget '.$url; 

是一個簡單的字符串。請參考this執行外部命令。

0

你可以使用`wget $url`,而不是你有什麼,這將解決它。不過,我建議使用system調用,因爲它是更好的做法:

system("wget",$url);

但是,如果由於某種原因需要輸出,那麼這將是最好使用反引號,並捕捉它是這樣的:

my $response = `wget $url`; 
+0

我試着用我的$ url =「http:// localhost:7001/JCreationServlet?command = buildassessment」。「&environment =」。$ ARGV [0]。「&jobID =」。$ ARGV [1]。「&taskID = 」 $ ARGV [2]。 「&WORKAREA =&jobDocument = 」$ ARGV [4]「 $ ARGV [3]。。。」; print「Url is $ url \ n」; open(OUTPUT,「>> $ fileName」) ||警告(「無法打開$ fileName寫入:$!\ n」); print OUTPUT「$ timeStamp:$ 0 - $ environment - $ url - $ taskid - $ workingdir - $ java_version \ n」; close(OUTPUT); 系統(「wget」,$ url);但仍然無法正常工作 – rand

+0

我在日誌中獲取了正確的URL,但仍然無法觸發 – rand

+0

如果您在瀏覽器中使用此URL,該URL是否有效? – srchulo