SOAP-Clean

 view release on metacpan or  search on metacpan

examples/soap-client.pl  view on Meta::CPAN

#! /usr/bin/env perl

# This file is placed in the public domain.

use lib '..';

use strict;
use warnings;

use SOAP::Clean::XML;
use SOAP::Clean::Client;

print "--------------------------------------------------\n";
print "Setting up server\n";
print "--------------------------------------------------\n";

my $test = 
  new SOAP::Clean::Client(
			  'cgifile:./soap-server.cgi?wsdl'
#			  'cgifile:./soap-server2.cgi?wsdl'
			 )
   ->verbose(2)
#  ->enc_dec_params(1,"private.pem","public2.pem","enc.tmpl","xmlsec")
#  ->dsig_keys(0,"CAkey.pem","CAcert.pem","dsig.tmpl","xmlsec")
  ;

my $a = xml_from_string("<?xml version=\"1.0\"?>"
			."<a>123</a>");

my ($result,$out1,$out2);

########################################################################

print "--------------------------------------------------\n";
print "Usage\n";
print "--------------------------------------------------\n";

my $usage_data = $test->usage();

foreach my $method_name ( sort(keys %$usage_data) ) {
  my $method_data = $$usage_data{$method_name};
  print "$method_name\n";
  foreach my $direction ( "input", "output" ) {
    print "  $direction:\n";
    my $args = $$method_data{$direction};
    foreach my $arg ( keys %$args ) {
      print "    $arg: ",$$args{$arg},"\n";
    }
  }
}

########################################################################

print "--------------------------------------------------\n";
print "Synchronous\n";
print "--------------------------------------------------\n";

($result,$out1,$out2) = $test->Call(0,$a,1,2);

print "result = ", $result,"\n";
print "out1 = ", $out1,"\n";
print "out2 = ", xml_to_string($out2),"\n";

########################################################################

print "--------------------------------------------------\n";
print "Synchronous - test for namespaces in embedded XML\n";
print "--------------------------------------------------\n";

$a = xml_from_string("<?xml version=\"1.0\"?>"
		     ."<a xmlns=\"urn:random\">123</a>");

($result,$out1,$out2) = $test->Call(0,$a,1,2);

print "result = ", $result,"\n";
print "out1 = ", $out1,"\n";
print "out2 = ", xml_to_string($out2),"\n";

########################################################################

print "--------------------------------------------------\n";
print "Asynchronous\n";
print "--------------------------------------------------\n";



( run in 1.213 second using v1.01-cache-2.11-cpan-71847e10f99 )