使用 SOAP 从 VBA 调用 Web 服务
Posted
技术标签:
【中文标题】使用 SOAP 从 VBA 调用 Web 服务【英文标题】:Calling a Webservice from VBA using SOAP 【发布时间】:2008-10-27 23:37:36 【问题描述】:我正在尝试在 Excel 宏中调用 Web 服务:
Set objHTTP = New MSXML.XMLHTTPRequest
objHTTP.Open "post", "https://www.server.com/EIDEServer/EIDEService.asmx"
objHTTP.setRequestHeader "Content-Type", "text/xml"
objHTTP.setRequestHeader "SOAPAction", "PutSchedule"
objHTTP.send strXML
我得到以下回复:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Server did not recognize the value of HTTP Header SOAPAction: PutSchedule.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
以前有人做过类似的事情吗?
【问题讨论】:
【参考方案1】:您的 SOAP 操作还应包括方法的命名空间 例如
"http://tempri.org/PutSchedule"
找出你的Service的命名空间是什么,并将它添加到方法名PutSchedule前面。
【讨论】:
您能说得更具体一点吗?我知道这条消息已有 3 年多的历史了,但这就是开设此类论坛的意义所在,对吧?【参考方案2】:看起来您使用的是 xml-rpc 而不是 soap。 使用http://msdn.microsoft.com/en-us/library/aa192537(office.11).aspx 的soap 类型库或与您的ms office 版本对应的库与Web 服务交互
【讨论】:
以上是关于使用 SOAP 从 VBA 调用 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章