West Wind Internet and Client Tools
wwSoap Help
Gravatar is a globally recognized avatar based on your email address. wwSoap Help
  Scott R
  All
  Jun 11, 2019 @ 10:04am

Rick,

I realize that on your help doc (https://webconnection.west-wind.com/docs/_06f04lmkh.htm) it says that the wwSOAP class is deprecated. However, I was hoping you could at least tell me what properties I need to set to achieve my desired result?

I've got an xml sample from the company we are trying to hit and I'm having problems getting the wwSOAP XML to match.

I need it to match:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v20="http://services.discretewireless.com/v2009_1/">
   <soapenv:Header/>
   <soapenv:Body>
      <v20:getAuthenticationTokenRequest>
         <v20:username>username</v20:username>
         <v20:password>password</v20:password>
      </v20:getAuthenticationTokenRequest>
   </soapenv:Body>
</soapenv:Envelope>

I'm using the following code:

DO wwSOAP
LOCAL oSoap, oWSDL

oSoap = CREATEOBJECT('wwSoap')
oWSDL = oSoap.parseServiceWSDL('http://services.discretewireless.com/v2009_1/AuthenticationManagerV1.wsdl')
*oSoap.cMethodNameSpace = 'http://services.discretewireless.com/v2009_1/'
*oSoap.cMethodNameSpaceURI = 'http://services.discretewireless.com/v2009_1/'

oSoap.cExtraEnvelopeAttributes = 'xmlns:v20="http://services.discretewireless.com/v2009_1/"'
oSoap.cMethodNameSpaceURI = 'v20'
oSoap.cMethodNameSpace = 'v20'

oSoap.addParameter('username', otsologin.tsologin, 'v20:') && I was testing to see if the 'v20:' would show up anywhere
oSoap.addParameter('password', otsologin.tsopwd)

m.req = oSoap.createSoapRequestXML('getAuthenticationTokenRequest')
*m.resp = oSoap.callWSDLMethod('getAuthenticationToken') &&, oWSDL)

and I'm am currently ending up with:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
 soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:v20="http://services.discretewireless.com/v2009_1/">
<soap:Body>
<v20:getAuthenticationTokenRequest xmlns:v20="v20" >
	<username>username</username>
	<password>password</password>
</v20:getAuthenticationTokenRequest></soap:Body>
</soap:Envelope>

This is close but not right. Is there a property I'm missing or is this not even possible using the wwSOAP class?

Thanks,

Scott

Gravatar is a globally recognized avatar based on your email address. re: wwSoap Help
  Rick Strahl
  Scott R
  Jun 11, 2019 @ 12:50pm

You need to specify the Uri properly. Use the namespace URL not V20.

oSoap.cExtraEnvelopeAttributes = 'xmlns:v20="http://services.discretewireless.com/v2009_1/"'
oSoap.cMethodNameSpaceURI = "http://services.discretewireless.com/v2009_1/"
oSoap.cMethodNameSpace = "v20"

The better choice probably is the West Wind Web Service Proxy Generator which can create service wrappers for you:

West Wind Web Service Proxy Generator

+++ Rick ---

© 1996-2019