Как использовать веб-сервис от VB6? - PullRequest
15 голосов
/ 23 сентября 2008

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

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

Ответы [ 7 ]

9 голосов
/ 23 сентября 2008

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

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
4 голосов
/ 23 сентября 2008

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

3 голосов
/ 23 сентября 2008

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

2 голосов
/ 24 сентября 2008

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

1 голос
/ 31 марта 2010

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

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

1 голос
/ 23 октября 2008

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

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

0 голосов
/ 23 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...