http://qs1969.pair.com?node_id=532098

dsb has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to build a SOAP encoded message to send through a web service as part of a smoke-test to confirm that a web-services layer is functioning properly (It's part of a much larger application, but if this service is broken, we need to know like...yesterday).

I've got just about zero SOAP experience, so working with SOAP::Lite is a bit hazy for me but I've got this to generate the first in a sequence of SOAP encoded messages:

use strict; use SOAP::Lite; use HTTP::Cookies; my $soap = new SOAP::Lite ->proxy( 'http://host.domain.com:80', cookie_jar => HTTP::Cookies->new( ignore_discard => 1 ) ) ->readable(1) ; my $data = SOAP::Data->name( 'login' => [ SOAP::Data->name('user_name' => 'uname')->attr({ xmlns => ''}), SOAP::Data->name('password' => 'upass')->attr({ xmlns => ''}), ], )->attr({ xmlns => 'data.someservice.somedomain' }); my $env = SOAP::Serializer->envelope( freeform => $data ); print $env, "\n";
My impression from the Looooooong abundant SOAP::Lite docs was that passing a true value to readable would yield formatted XML for...readability. Does this only apply to non-freeform envelopes?


dsb
This @ISA my( $cool ) %SIG

Replies are listed 'Best First'.
Re: SOAP::Lite->readable()
by samtregar (Abbot) on Feb 22, 2006 at 23:14 UTC
    It looks ok to me. Is it working? If not, what happened? We can't try it ourselves since we can't access your server.

    I've taken to running XML through the xmllint program that comes with libxml2. It has excellent error reporting and does automatic formatting. Perhaps you can use it if SOAP::Lite isn't cooperating.

    More generally, may I recommend you pick up a copy of Programming Web Services with Perl. It's by the author SOAP::Lite and it will definitely help you understand SOAP better.

    -sam