SOAP(Simple Object Access Protcol)-クライアントでEnvelopeを表示する

SOAPモジュールを利用したXML-RPCサーバ/クライアント

# サーバ
#!/usr/local/bin/perl -w

use strict;
use warnings;
use SOAP::Transport::HTTP;

my $cgi = SOAP::Transport::HTTP::CGI
         ->dispatch_to('SoapServer')
         ->handle();

package SoapServer;
sub handler {
 my ($class,$arg_hash_ref) = @_;
 $class->choose;
}

sub choose { return 1; }
# サーバのレスポンスを出力するクライアント
#!/usr/local/bin/perl -w

use strict;
use warnings;
use SOAP::Lite;

my $server = SOAP::Lite
            ->uri('urn:SoapServer')
            ->proxy('http://localhost/cgi-bin/soap_server.cgi')
            ->handler;

if( $server->fault ){
 print "code - " . $server->faultcode . "\n";
 print "string - " . $server->faultstring . "\n";
}else{
 print "result - " - $server->result . "\n";
}
      • 結果---

result - 1

      • 結果---
# サーバのレスポンスをXML(SOAP-Envelope)形式で表示するクライアント
use strict;
use warnings;
use SOAP::Lite;

my $server = SOAP::Lite
            ->uri('urn:SoapServer')
            ->outputxml(1)
            ->proxy('http://localhost/cgi-bin/soap_server.cgi')
            ->handler;

print $server . "\n";
      • 結果---

1

      • 結果---
# サーバのレスポンスをXML(SOAP-Envelope)形式で表示するクライアント
use strict;
use warnings;
use SOAP::Lite;

my $server = SOAP::Lite
            ->uri('urn:SoapServer')
            ->outputxml(1)
            ->proxy('http://localhost/cgi-bin/soap_server.cgi')
            ->handler;

print $server . "\n";

my $deserial = SOAP::Deserializer->new;
$server = $deserial->deserialize($server);

if( $server->fault ){
 print $server->faultcode . "\n";
 print $server->faultstring . "\n";
}else{
 print "result - " - $server->result . "\n";
}
      • 結果---

1
result - 1

      • 結果---