如何从VB6使用Web服务?

时间:2008-09-23 17:54:12

标签: web-services deployment vb6 soap

我需要从VB6程序中使用外部Web服务。如果可能的话,我希望能够在没有SOAP工具包的情况下部署我的程序,但这不是必需的。我没有Web服务源,也没有创建它。它是供应商提供的服务。

因此,在SOAP工具包之外,从VB6使用Web服务的最佳方法是什么?

7 个答案:

答案 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撰写的这篇文章。

Calling Web Services from Visual Basic 6, the Easy Way

答案 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消息的格式不容易手动读取或写入,强烈建议使用第三方库。