Как использовать веб-сервис от VB6?

Мне нужно использовать внешний веб-сервис из моей программы VB6. Я хочу иметь возможность развернуть мою программу без инструментария SOAP, если это возможно, но это не является обязательным требованием. У меня нет источника веб-сервиса, и я его не создал. Это служба, предоставляемая поставщиком.

Итак, вне инструментария SOAP, какой лучший способ использовать веб-сервис из VB6?

Ответы

Ответ 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

Ответ 2

У .NET хорошая поддержка веб-сервисов с первого дня, поэтому вы можете разработать логику клиента веб-сервиса в .NET как библиотеку/сборку .dll и использовать ее в приложении VB6 через COM Interop.

Ответ 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. Что приятно.

Ответ 4

Pocketsoap работает очень хорошо. Для генерации ваших объектов используйте WSDL generator. Используя это, вам не нужно ничего разбирать самостоятельно, плюс все хорошо и строго типизировано.

Ответ 6

До сих пор я имел некоторый успех с помощью PocketSOAP для подключения к API Salesforce. Я не мог использовать мастер WSDL, потому что он генерирует имена файлов классов-оболочек, используя первые 23 символа имен вызовов, и это приводит к дублированию. Тем не менее, PocketSOAP работает достаточно хорошо для меня без мастера, и это гораздо более просто, чем использование XMLHTTP с DOMDocument.

Я также рассмотрел создание обертки в .NET или использование одной из библиотек Microsoft Office {MSO version} Web Services Toolkit ", но с этими параметрами были значительные проблемы с развертыванием. PocketSOAP - это простая COM-библиотека, не зависящая от какой-либо конкретной версии MS Office, и лицензируется в MPL.

Ответ 7

Инструментарий SOAP, возможно, лучший, который вы можете получить. Попытка сделать то же самое без него потребует значительных дополнительных усилий. У вас должны быть достаточно серьезные причины для этого.

Формат сообщений SOAP не так-то просто читать или писать вручную, и настоятельно рекомендуется сторонняя библиотека.