Frage

Ich brauche einen externen Web-Service von meinem VB6-Programm zu konsumieren. Ich möchte in der Lage, mein Programm ohne die SOAP-Toolkit einsetzen, wenn möglich, aber das ist keine Voraussetzung. Ich habe nicht die Web-Service-Quelle und ich habe es nicht schaffen. Es ist ein Hersteller bereitgestellten Service.

So außerhalb des SOAP-Toolkit, was ist der beste Weg, um einen Web-Service von VB6 zu verbrauchen?

War es hilfreich?

Lösung

Ich benutze diese Funktion Daten von einem Web-Service zu erhalten.

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

Andere Tipps

.NET hat eine gute Unterstützung für Web Services seit dem ersten Tag, so können Sie Ihre Web-Service-Client-Logik in .NET als DLL-Bibliothek / Montage und verwenden Sie es in VB6 app über COM-Interop zu entwickeln.

Wenn Sie sich auf Windows XP Professional laufen oder höher, eine interessante Methode ist die SOAP-Moniker zu verwenden. Hier ist ein Beispiel, von einer MSDN-Seite angehoben. Ich weiß nicht, ob dieser besondere Service funktioniert, aber Sie erhalten die Idee ...

   set SoapObj = GetObject
       ("soap:wsdl=http://www.xmethods.net/sd/TemperatureService.wsdl")
   WScript.Echo "Fairbanks Temperature = " & SoapObj.getTemp("99707")

Dieser Mechanismus funktioniert auch von VBScript. Welches ist schön.

Pocket funktioniert sehr gut. So generieren Sie Ihre Objekte verwenden, um den WSDL Generator . Mit diesem Sie müssen nicht alles selbst analysieren, und alles ist schön und stark typisiert.

Überprüfen Sie diesen Artikel von Scott Swigart heraus auf der MSDN VB 6.0 Resource Center.

Aufrufen von Webdiensten von Visual Basic 6, der einfache Weg

Ich habe ein gewisses Maß an Erfolg hatte bisher Pocket mit auf die Salesforce-API zu verbinden. Ich kann nicht die WSDL-Assistenten verwenden, da es die Dateinamen-Wrapper-Klasse unter Verwendung der ersten 23 Zeichen der Anrufnamen erzeugt, und dies führt zu Duplikaten. Dennoch wurde ohne die Assistenten für mich gut genug Pocket zu arbeiten, und es ist viel einfacher als XMLHTTP mit DOMDocument verwendet wird.

Ich sah auch einen Wrapper in .NET in der Herstellung oder Verwendung einen der „MS Office {MSO-Version} Webdiensttoolkit“ Bibliotheken, aber es gab erheblichen Einsatz Ärger mit diesen Optionen. Pocket ist ein einfacher COM-DLL, nicht abhängig von einer bestimmten Version von MS Office und unter MPL lizenziert.

Der SOAP-Toolkit ist wohl das Beste, was Sie bekommen können. Der Versuch, das Gleiche zu tun, ohne es zu erheblichen zusätzlichen Aufwand erfordern würde. Sie müssen ganz schwerwiegende Gründe haben, das zu tun.

Das Format der SOAP-Nachrichten ist nicht wirklich einfach manuell zu lesen oder schreiben und eine Drittanbieter-Bibliothek wird dringend empfohlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top