我需要从VB6程序中使用外部Web服务。如果可能的话,我希望能够在没有SOAP工具包的情况下部署我的程序,但这不是必需的。我没有Web服务源,也没有创建它。它是供应商提供的服务。
因此,在SOAP工具包之外,从VB6使用Web服务的最佳方法是什么?
答案 0 :(得分:9)
我使用此功能从Web服务获取数据。
Private Function HttpGetRequest(url As String) As DOMDocument
Dim req As XMLHTTP60
Set req = New XMLHTTP60
req.Open "GET", url, False
req.send ""
Dim resp As DOMDocument
If req.responseText <> vbNullString Then
Set resp = New DOMDocument60
resp.loadXML req.responseText
Else
Set resp = req.responseXML
End If
Set HttpGetRequest = resp
End Function
答案 1 :(得分:4)
.NET从第一天起就对Web服务提供了很好的支持,因此您可以在.NET中将您的Web服务客户端逻辑开发为.dll库/程序集,并通过COM Interop在VB6应用程序中使用它。
答案 2 :(得分:3)
假设您在Windows XP Professional或更高版本上运行,一种有趣的方法是使用SOAP名字对象。这是一个例子,取自某些MSDN页面。我不知道这项服务是否有效,但你明白了......
set SoapObj = GetObject
("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl")
WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707")
此机制也适用于VBScript。哪个好。
答案 3 :(得分:2)
Pocketsoap效果很好。要生成对象,请使用WSDL generator。使用它你不必自己解析任何东西,加上一切都很好并且强类型。
答案 4 :(得分:1)
在MSDN VB 6.0资源中心查看Scott Swigart撰写的这篇文章。
答案 5 :(得分:1)
到目前为止,我已经尝试使用PocketSOAP连接到Salesforce API。我无法使用WSDL向导,因为它使用调用名称的前23个字符生成包装类文件名,这会导致重复。尽管如此,PocketSOAP在没有向导的情况下对我来说已经足够好了,而且比使用带有DOMDocument的XMLHTTP要简单得多。
我还研究了在.NET中创建包装器或使用“MS Office {MSO版本} Web服务工具包”库之一,但是这些选项存在重大的部署麻烦。 PocketSOAP是一个简单的COM DLL,不依赖于某些特定版本的MS Office,并且是根据MPL许可的。
答案 6 :(得分:0)
SOAP工具包可以说是最好的。试图在没有它的情况下做同样的事情需要相当多的额外努力。你需要有相当严肃的理由这样做。
SOAP消息的格式不容易手动读取或写入,强烈建议使用第三方库。