NYCPHP Meetup

NYPHP.org

[nycphp-talk] PHP, Perl & SOAP

Khalid Hanif phplists at jellyandcustard.com
Mon Dec 17 13:12:35 EST 2007


Hi Guys,

I'm connecting to a SOAP Server that is being run under Perl.  
Unfortunately, there is no WSDL for this server, and all I have to go  
on is legacy Perl code.

When I receive back a response from the SOAP Server, the data is  
wrapped in gensym tags:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"  
xmlns:apachens="http://xml.apache.org/xml-soap" xmlns:xsd="http:// 
www.w3.org/2001/XMLSchema" soap:encodingStyle="http:// 
schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http:// 
schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<API_ExecuteResponse xmlns="http://server.co.uk/API">
<s-gensym1437 xsi:type="xsd:string">
remote_pass</s-gensym1437>
<s-gensym1439 xsi:type="xsd:string">
*****</s-gensym1439>
<s-gensym1441 xsi:type="xsd:string">
password</s-gensym1441>
<s-gensym1443 xsi:type="xsd:string">
*****</s-gensym1443>
<s-gensym1453 xsi:type="xsd:string">
error_string</s-gensym1453>
<s-gensym1455 xsi:nil="true" />

</API_ExecuteResponse>
</soap:Body>
</soap:Envelope>

(Above has been snipped).

In the Perl code, the above is handled internally, and it will create  
the key=>value pairs as an array. However, I can't get this to work  
in PHP.

The perl code makes use of $result->paramsout; to do this (it appears).

To make things even more difficult, the digits within the gensym tags  
are randomly assigned, so each request is different.

Any ideas what I can do to get this to work? If I had a WSDL, would  
this problem be rectified?

Cheers,
Khalid



More information about the talk mailing list