I am confused over how my SOAP call is working below.
We had a product upgrade to our software, and the WSLDs hosted at https://"+host+"/tc/services/BotOps-2018-11-ASMLBotOps?wsdl
are moved to a different location, which is not accessible via web.
My existing code looks like this:
var options = {????????
url:"https://"+host+"/tc/services/BotOps-2018-11-ASMLBotOps?wsdl",
method:'POST',
body:xml,
headers: {????????
'Content-Type':'text/xml;charset=utf-8',
'Content-Length':xml.length,
'SOAPAction':"asmlValidateUserAdminBotOpsService",
'Cookie':from
}????????
}????????;
var xml = `<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:asm="http://a5oa.com/Schemas/BotOps/2018-11/ASMLBotOps">
<soapenv:Header/>
<soapenv:Body>
<asm:AsmlValidateUserAdminBotOpsServiceInput>
<asm:asmlValidateUserIsAdminOpsInput pszAsmlTcUserID="`+args[1]+`" pszRequestorUserId="`+args[2]+`"/>
</asm:AsmlValidateUserAdminBotOpsServiceInput>
</soapenv:Body>
</soapenv:Envelope>`;
This worked fine without our product upgrade, which I understand. But if the WSDLs are moved to a different location which are not accessible and the url that I am referring to means nothing now, how can it be that this web service request is still working as expected? I was expecting that the web service now fails because the WSDL does not exist, but it still works.
I have read somewhere that a WSDL is like a header file in other languages, that contains the blueprint of what a SOAP accepts as input roughly and returns as output. So is it even sensible to fire a SOAP request without a WSDL?
How does this work?
question from:
https://stackoverflow.com/questions/65598875/how-is-a-soap-call-possible-without-wsdl 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…