http://www.perlmonks.org?node_id=996582

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

I need to work with the result of a SOAP::Lite call, but I must also save the original XML from the response as a backup. Is there a standard method that could replace the last line from the following code?

my $soap = SOAP::Lite->new( proxy => 'http://mywebservice/'); my $som = $soap->call( 'MyMethod', SOAP::Data->name(MyArg => 'XYZ') ); die $som->faultstring if ($som->fault); #print Dumper($som->result); my @nodes = $som->valueof('//Path/To/Data'); foreach my $node (@nodes) { print Dumper($node); } #print Dumper($som); print Dumper($som->{_context}->{_transport}->{_proxy}->{_http_response +}->{_content});

Note: this code have been snipped just to show what I want to do...

Replies are listed 'Best First'.
Re: Obtaining both XML and parsed object from SOAP::Lite?
by Anonymous Monk on Oct 01, 2012 at 06:35 UTC

      Well, I previously tried some variations with $soap->http_response, but as a result, the webservice was called a second time. The transport part was what I was missing. Thank you!

      BTW, as_string method also returned the HTTP headers... instead, I used:

      print OUT $soap->transport->http_response->content;
        Well, headers can contain valuable info, but if you're only after content, maybe you want decoded_content, in case tar/gzip...