#!/usr/bin/perl -- use SOAP::Lite; my $soap = SOAP::Lite ->proxy( 'http://localhost/blah/DummyService', timeout => 0.00001, ); $soap->transport->add_handler("request_send", \&pp_dump ); $soap->transport->add_handler("response_done", \&pp_dump ); my $param = SOAP::Data->name( "ListOfArmAccountContactInterface" => \SOAP::Data->value( SOAP::Data->name( "ARMAccount" => \SOAP::Data->value( SOAP::Data->name( "ContactCompanyId" => '1029843' ), SOAP::Data->name( "ListOfArmContact" => \SOAP::Data->value( SOAP::Data->name( "ARMContact" => \SOAP::Data->value( #~ SOAP::Data->name("" => 'CON12347') SOAP::Data->name( "ConnectContactId" => 'CON12347' ) ) ) ) ) ) ) ) ); #~ print pp( #~ $soap->serializer()->envelope( #~ method => 'ContactInsertOrUpdate', #~ $param #~ ), #~ ), "\n\n"; $soap->call( 'ContactInsertOrUpdate', $param ); sub pp { use XML::Twig; open my($fh), '>', \my $str; no warnings 'newline'; XML::Twig->new(qw! pretty_print record !)->xparse(@_)->print( $fh ); return $str; } sub pp_dump { my $content = $_[0]->content(''); $_[0]->content( pp($content) ); print $_[0]->as_string,"\n"; return; } __END__