in reply to Re^2: Dynamic Language questions
in thread Dynamic Language questions
Produces request:perl soapclient 98.6
When the server has done its bit, the script prints the response:<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://sunflower.com/soapns" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <soap:Body> <tns:temperature> <tns:farenheit>98.6</tns:farenheit> </tns:temperature> </soap:Body> </soap:Envelope>
The names of the parameters and their allowed types are usually governed by a WSDL file (perhaps that expands to Web Service Description Language, but I'm not sure of the achronymn).<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <soap:Body> <GantrySoapServiceResponse xmlns="http://usegantry.org/soapservice"> <currentUTCTime>2007-05-15T12:08:18Z</currentUTCTime> <celcius>37</celcius> </GantrySoapServiceResponse> </soap:Body> </soap:Envelope>
Note well that you can convert the script to contact any document style service on the web by changing the URLs and providing the correct argument structure. For instance, I started this test against a public web service. I used:
andmy $site = { action_url => 'http://in2test.lsi.uniovi.es/sqlmutationws/getMutantsCompress +ed', post_to_url => 'http://in2test.lsi.uniovi.es/sqlmutationws/SQLMutationWS.asmx +', target_namespace => 'http://in2test.lsi.uniovi.es/sqlmutationws', };
If you make those changes, and the public service is still up, you should get a result from anywhere on the net.my $request_args = [ { getMutantsCompressed => [ { sql => 'select * from table1' }, { schema => undef }, { options => undef }, ] }, ];
In case it might help with this question or some other question you didn't post, here is the code from the Gantry samples which serves the original script:
package Gantry::Samples::SOAP; use strict; use warnings; use Gantry qw{ -PluginNamespace=Gantry::Samples::SOAP SOAP::Doc }; our @ISA = ( 'Gantry' ); sub namespace { return 'Gantry::Samples::SOAP'; } sub do_f2c { my ( $self ) = @_; my $time = $self->soap_current_time(); my $params = $self->params(); # easy way my $f_temp = $params->{ farenheit }; my $celcius = 5.0 * ( $f_temp - 32 ) / 9.0; my $ret_struct = [ { GantrySoapServiceResponse => [ { currentUTCTime => $time }, { celcius => $celcius }, ] } ]; $self->soap_namespace_set( 'http://usegantry.org/soapservice' ); return $self->soap_out( $ret_struct, 'internal', 'pretty' ); } # END do_f2c 1;
Thanks for taking the time to respond to the survey for all of us.
Phil
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Dynamic Language questions
by Dice (Beadle) on May 15, 2007 at 14:06 UTC |