访问PERL中的Web服务

时间:2012-04-12 10:33:19

标签: web-services perl

我正在访问从perl脚本托管在IIS中的Web服务。我有一个服务方法,它返回一个字符串数组。我无法阅读服务的回复。通过使用Dumper我打印了服务返回的响应,在那里我可以看到数组值,但我无法访问数组值。如何访问从Web服务方法返回的thr数组值。

调用perl中的方法:

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 = undef;
问题是什么。

谢谢,
阿维纳什

1 个答案:

答案 0 :(得分: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 ( $@ ){
     print " Service Down\n";
     }

对于soap调用,它需要代理,而uri请在eval中检查它们是否可访问。