2008-09-23 4 views
14

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

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

ответ

8

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

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 
+0

Не очень полезно, если веб-служба не использует HTTP. – 2012-11-28 01:38:15

+2

@JohnSaunders Конечно, не стесняйтесь использовать другой подход для тех частей сети, которые не используют HTTP. – 2012-11-28 02:49:53

+1

Возможно, вы не называете что-то веб-службой, если он использует двоичный код по протоколу TCP/IP, но не HTTP? Если это так, то я согласен с вами. Я не думаю, что использование SMTP или TCP/IP в качестве транспорта не позволяет сервису быть «веб-сервисом», хотя я бы согласился с тем, что это не «Интернет-сервис». – 2012-11-28 03:19:10

0

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

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

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

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

2

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

1

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

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

Смежные вопросы