Вопрос

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

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

Это было полезно?

Решение

Я использую эту функцию для получения данных из веб-сервиса.

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 имеет хорошую поддержку веб-служб с самого первого дня, поэтому вы можете разработать клиентскую логику своего веб-сервиса в .NET в виде библиотеки/сборки .dll и использовать ее в приложении VB6 через COM Interop.

Предполагая, что вы работаете в 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.Это приятно.

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

Прочтите эту статью Скотта Свигарта в Ресурсном центре MSDN VB 6.0.

Вызов веб-служб из Visual Basic 6: простой способ

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top