我需要从我的VB6程序消耗的外部Web服务。 我希望能够在不SOAP工具包,如果可能的话,以我的部署方案,但是这不是必须的。 我没有Web服务来源,我没有创造它。 这是供应商提供的服务。
因此,SOAP工具包之外,什么是消费从VB6 web服务的最佳方式?
我需要从我的VB6程序消耗的外部Web服务。 我希望能够在不SOAP工具包,如果可能的话,以我的部署方案,但是这不是必须的。 我没有Web服务来源,我没有创造它。 这是供应商提供的服务。
因此,SOAP工具包之外,什么是消费从VB6 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
.NET已经从一开始的Web服务的一个很好的支持,这样你就可以开发.NET Web服务客户端逻辑作为一个.dll库/组件,并通过COM互操作在VB6应用程序中使用它。
假设你在Windows XP专业版或以上运行时,一个有趣的方法是使用SOAP绰号。 这里有一个例子,从某些MSDN页面解除。 我不知道这个特殊的服务工作,但你的想法...
set SoapObj = GetObject
("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl")
WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707")
这种机制也从VBScript。 这是很好的。
Pocketsoap工作得很好。 要生成对象使用WSDL发生器 。 使用这个你不用自己分析什么,再加上一切都不错,强类型。
看看这篇文章由斯科特·Swigart在MSDN VB 6.0资源中心。
从Visual Basic 6,简单的方法调用Web服务
我已经成功至今使用PocketSOAP的一些措施来连接到Salesforce的API。 我不能使用WSDL向导,因为它使用电话名称的前23个字符包装类的文件名,而这会导致重复。 然而,PocketSOAP一直不够好,我不使用向导,它比使用XMLHTTP与DOM文档更简单。
我也看了成使包装在.NET或使用“微软Office {MSO版本} Web服务工具包”的图书馆之一,但也有与这些选项显著部署的麻烦。 PocketSOAP是一个简单的COM DLL,不依赖于微软Office的某些特定版本,并根据MPL许可。
SOAP工具包可以说是你能得到最好的。 试图做同样的事情,没有它,就需要大量的额外工作。 你需要有相当严重的理由这样做。
SOAP消息的格式是不是真的容易阅读或手工编写和第三方库强烈建议。