web services - services - ¿Cómo puedo llamar a un servicio web SOAP 1.2 desde un agente de LotusScript?
libreria soap (1)
Estoy usando un Lotus Domino 9 en un servidor de Windows
Debo llamar a un servicio web de Soap 1.2 que ya no se mantiene
Los consumidores de los servicios web de Lotus solo aceptan los servicios web de Soap 1.1 . Por lo tanto, no puedo usar esta característica para vincular mis servicios web.
¿Es posible llamar a un servicio web de Soap 1.2 desde mi agente de LotusScript y, en caso afirmativo, cuáles son los pasos necesarios?
Finalmente encontré una solución usando el objeto XMLHTTP
Sub Initialize
Dim xmlhttp As Variant
dim DOMDocument As Variant
Dim soapEnvelope As String
Dim webService As String
dim username As String
Dim password As String
Dim strxml As String
Set xmlhttp = CreateObject("Msxml2.XMLHTTP")
Set DOMDocument = CreateObject("MSXML2.DOMDocument")
webService = "http://server/path/service"
username = "user1"
password = "123456"
soapEnvelope ={<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:doc="http://checkYourOwnEnvelopeDetails.com">}
soapEnvelope =soapEnvelope & {<soap:Header/>}
soapEnvelope =soapEnvelope & {<soap:Body>}
'' ...use SoapUI to know the exact envelop structure
soapEnvelope =soapEnvelope & {</soap:Body>}
soapEnvelope =soapEnvelope & {</soap:Envelope>}
DOMDocument.loadXML (soapEnvelope)
Call xmlhttp.open("POST", webService, False,username,password)
Call xmlhttp.setRequestHeader("Content-Type", "application/soap+xml;charset=UTF-8")
Call xmlhttp.setRequestHeader("Username", username)
Call xmlhttp.setRequestHeader("Password", password)
'' again, use SoapUI to discover the exact name of the action
Call xmlhttp.setRequestHeader("SOAPAction", "urn:getListAll")
Call xmlhttp.send(DOMDocument.xml)
strxml = xmlhttp.responseText
...
End Sub