Web服务 – 在传统ASP中使用SOAP Web服务

我有一个问题,这是代码:

Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP")
oXmlHTTP.Open "POST", "http://www.oursite.com/WebServices/ourService.asmx?WSDL", False 

oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8" 
oXmlHTTP.setRequestHeader "SOAPAction", "http://ourNameSpace/ourFunction"

SOAPRequest = _
  "<?xml version=""1.0"" encoding=""utf-8""?>" &_
  "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" &_
    "<soap12:Body>" &_
      "<ourFunction xmlns=""http://ourNameSpace/"">" &_
        "<var1>" & Session("userid") & "</var1>" &_
        "<var2>" & Session("internetid") & "</var2>" &_
      "</ourFunction>" &_
    "</soap12:Body>" &_
  "</soap12:Envelope>"

oXmlHTTP.send SOAPRequest

它执行并且没有错误,但是我找不到任何输出,或者即使它存在也无法解析它 – 但在这两种情况下我都不知道它.

在调用之后,我应该如何解析返回的XML?

最佳答案 你错过了:

Set xmlResp = oXmlHTTP.responseXML

这使您可以访问Msxml2.DOMDocument对象.
如何从中获取数据实际上取决于soap响应的格式.

它应该看起来像这样:

<%    Set nodes = xmlResp.getElementsByTagName("returnVal") %>
<ul>
<%    For Each node in nodes    %> 
   <li><%=node.text%></li>
<%    Next    %>
</ul>

也可以看看:

> DomDocument
> ServerXMLHTTP
> Using ServerXMLHTTP

点赞