2012-04-12 22 views
0

私はperlスクリプトからIISでホストされているWebサービスにアクセスしています。私は、文字列の配列を返すサービス中のメソッドを持っています。私はサービスから応答を読むことができません。 Dumperを使用することで、サービスから返された応答が表示され、そこに配列の値が表示されますが、配列の値にアクセスできません。 Webサービスメソッドから返された配列値にアクセスする方法。

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 = undef;
問題は何ですか。

おかげで、
のAvinash

+0

Dumper出力を含めてください。 – user1126070

+0

@ user1126070、彼はしました。それは '$ VAR1 = undef'です。 – Axeman

答えて

0

コールが起こったかどうかレスポンスチェックを知る前に。

use strict; 警告を使用します。石鹸の呼び出しの場合

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"; 
    } 

、それはプロキシを必要とURIは親切に彼らがアクセスしているかどうかを確認するためにevalのものを持っています。

+1

読者に注意してください:間接メソッド呼び出し( 'new SOAP :: Lite')を使わないでください。最近では、ダイレクトコール( 'SOAP :: Lite-> new(...)')が普遍的に好まれています。 – Axeman

関連する問題