如何从LotusScript代理调用SOAP 1.2 Web服务? [英] How can I call a SOAP 1.2 Web service from a LotusScript agent?

查看:53
本文介绍了如何从LotusScript代理调用SOAP 1.2 Web服务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Windows Server上使用Lotus Domino 9

I'm using a Lotus Domino 9 on a windows Server

我必须调用不再维护的 Soap 1.2 网络服务

I must call a Soap 1.2 web service that is not maintained anymore

Lotus Web服务使用者仅接受 Soap 1.1 Web服务,因此我无法使用此出色功能来绑定我的Web服务.

The Lotus Web service consumers only accepts Soap 1.1 web services, So I cannot use this nice feature to bind my web services.

是否可以从我的 LotusScript 代理调用 Soap 1.2 Web服务,如果可以,需要执行哪些步骤?

Is it possible to call a Soap 1.2 web service from my LotusScript agent and if yes, what are the needed steps ?

推荐答案

最后,我找到了使用XMLHTTP对象的解决方案

Finally I found a solution using the XMLHTTP object

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

这篇关于如何从LotusScript代理调用SOAP 1.2 Web服务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆