Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^3: Using SOAP::Lite with a WSDL

by poj (Abbot)
on May 21, 2017 at 12:40 UTC ( [id://1190798]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Using SOAP::Lite with a WSDL
in thread Using SOAP::Lite with a WSDL

Ok, try this, it adds the prefixes and an empty header.

#!perl use strict; use SOAP::Lite; # soap my $client = SOAP::Lite->uri('') ->proxy("loopback://"); $client->autotype(0)->readable(1); $client->outputxml(1); $client->ns("http://schemas.xmlsoap.org/soap/envelope/","soapenv"); $client->ns("http://tempuri.org/AWEService/API/WASAPI","was"); my %auth = ( WAS_userName => 'WS_Decom', WAS_password => 'PASSWORD', ); my %search = ( DEVICE_NAME => 'prodh20', RACK_NAME => '', # etc ); my @auth_data; for (keys %auth){ my $data = SOAP::Data->name( $_ => $auth{$_} )->prefix('was'); push @auth_data, SOAP::Data->type('data' => $data), } my @search_data; for (keys %search){ my $data = SOAP::Data->name( $_ => $search{$_} )->prefix('was'); push @search_data, SOAP::Data->type('data' => $data), } my $auth = SOAP::Data->name( "userIdentification" => \@auth_data )->prefix('was'); my $search = SOAP::Data->name( "locatorSearchFieldsIdentification" => \@search_data )->prefix('was'); my $header = SOAP::Data->type('xml' => ''); my $response = $client->call("RunLocator", SOAP::Header->type('data'=>$header), SOAP::Data->type('data' => $auth), SOAP::Data->type('data' => $search) ); #open OUT,'>','output.xml' or die "$!"; print $response; #close OUT;
poj

Replies are listed 'Best First'.
Re^4: Using SOAP::Lite with a WSDL
by lahfordie (Initiate) on May 22, 2017 at 17:09 UTC

    Awesome! It's working now after a slight modification from this version. I figured out that the faultstring is because I needed an on_action sub to replace the # with a slash.

    my $client = SOAP::Lite ->proxy('https://www.example.com/WAS/API/AWEService.asmx?ENDPOINT' +) ->on_action(sub { join '/', @_ }) ->outputxml(1) ->ns('http://tempuri.org/AWEService/API/WASAPI','was');

    Now to continue my Perl studies so that I can better understand what else is going on in the SOAP::Lite doc, should I have the misfortune of working with SOAP again.

    Thank you, enlightened monk!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1190798]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (2)
As of 2024-04-26 04:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found