如何消耗从VB6 Web服务?(How to consume a web service from

2019-06-17 23:52发布

我需要从我的VB6程序消耗的外部Web服务。 我希望能够在不SOAP工具包,如果可能的话,以我的部署方案,但是这不是必须的。 我没有Web服务来源,我没有创造它。 这是供应商提供的服务。

因此,SOAP工具包之外,什么是消费从VB6 web服务的最佳方式?

Answer 1:

我用这个函数从网络服务中获取数据。

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


Answer 2:

.NET已经从一开始的Web服务的一个很好的支持,这样你就可以开发.NET Web服务客户端逻辑作为一个.dll库/组件,并通过COM互操作在VB6应用程序中使用它。



Answer 3:

假设你在Windows XP专业版或以上运行时,一个有趣的方法是使用SOAP绰号。 这里有一个例子,从某些MSDN页面解除。 我不知道这个特殊的服务工作,但你的想法...

   set SoapObj = GetObject
       ("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl")
   WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707")

这种机制也从VBScript。 这是很好的。



Answer 4:

Pocketsoap工作得很好。 要生成对象使用WSDL发生器 。 使用这个你不用自己分析什么,再加上一切都不错,强类型。



Answer 5:

看看这篇文章由斯科特·Swigart在MSDN VB 6.0资源中心。

从Visual Basic 6,简单的方法调用Web服务



Answer 6:

我已经成功至今使用PocketSOAP的一些措施来连接到Salesforce的API。 我不能使用WSDL向导,因为它使用电话名称的前23个字符包装类的文件名,而这会导致重复。 然而,PocketSOAP一直不够好,我不使用向导,它比使用XMLHTTP与DOM文档更简单。

我也看了成使包装在.NET或使用“微软Office {MSO版本} Web服务工具包”的图书馆之一,但也有与这些选项显著部署的麻烦。 PocketSOAP是一个简单的COM DLL,不依赖于微软Office的某些特定版本,并根据MPL许可。



Answer 7:

SOAP工具包可以说是你能得到最好的。 试图做同样的事情,没有它,就需要大量的额外工作。 你需要有相当严重的理由这样做。

SOAP消息的格式是不是真的容易阅读或手工编写和第三方库强烈建议。



文章来源: How to consume a web service from VB6?