Как использовать веб-сервис от 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. Используя это, вам не нужно ничего разбирать самостоятельно, плюс все хорошо и строго типизировано.
Ответ 5
Ознакомьтесь с этой статьей Скоттом Свигартом в Центре ресурсов MSDN VB 6.0.
Вызов веб-служб из Visual Basic 6, легкий путь
Ответ 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 не так-то просто читать или писать вручную, и настоятельно рекомендуется сторонняя библиотека.