2012-04-12 77 views
0

我正在從perl腳本訪問託管在IIS中的Web服務。我有一個方法返回一個字符串數組。我無法閱讀服務的迴應。通過使用Dumper我打印了由服務返回的響應,在那裏我可以看到數組值,但我無法訪問數組值。如何訪問從Web服務方法返回的thr數組值。在Perl

調用方法:
在PERL中訪問Web服務

my $method2 = SOAP::Data->name('getCustInfo')->attr({xmlns => 'http://tempuri.org/'}); 
my @param=(SOAP::Data->name(custId=>$custid)); 
my $response1= $soap->call($method2=>@param); 
print $response1; 

print Dumper $response1; 

@result11=$response1->result; 
print Dumper $response1; 
$i=-1; 
foreach my $result(@result11) 
{ 
    ++$i; 
    print $result[$i]; 
} 


我使用的訪問方法,而我試圖打印,但它不能正常工作的給上面的代碼:HASH(0x3a84518)$ VAR1 =民主基金;
是什麼問題。

感謝,
阿維納什

+0

請包括Dumper輸出。 – user1126070 2012-04-12 11:31:27

+0

@ user1126070,他做到了。它是'$ VAR1 = undef'。 – Axeman 2012-04-12 12:02:55

回答

0

知道響應檢查調用是否之前發生的。

使用嚴格; 使用警告;

use SOAP::Lite +trace=>"debug"; # it debugs whether the connection is set or not 

my ($soap,$proxy,$uri); 

eval { 
    $soap = new SOAP::Lite 
      proxy=>$proxy, 
      uri=>$uri; 
}; 

    if ([email protected]){ 
    print " Service Down\n"; 
    } 

對於SOAP調用,它需要代理和URI親切有那些在EVAL以檢查它們是否可以訪問。

+1

注意讀者:不要使用間接方法調用('new SOAP :: Lite')。直接調用('SOAP :: Lite-> new(...)')現在幾乎普遍受歡迎。 – Axeman 2012-04-12 12:50:27