Domanda

Devo utilizzare un servizio Web esterno dal mio programma VB6. Voglio essere in grado di distribuire il mio programma senza il toolkit SOAP, se possibile, ma non è un requisito. Non ho la fonte del servizio web e non l'ho creata. È un servizio fornito dal fornitore.

Quindi, al di fuori del toolkit SOAP, qual è il modo migliore per utilizzare un servizio Web da VB6?

È stato utile?

Soluzione

Uso questa funzione per ottenere dati da un servizio Web.

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

Altri suggerimenti

.NET offre un buon supporto per i servizi Web sin dal primo giorno, quindi puoi sviluppare la logica del client del servizio Web in .NET come libreria / assembly .dll e utilizzarla nell'app VB6 tramite interoperabilità COM.

Supponendo che tu sia in esecuzione su Windows XP Professional o versioni successive, un metodo interessante è utilizzare il moniker SOAP. Ecco un esempio, sollevato da alcune pagine MSDN. Non so se questo particolare servizio funzioni, ma hai l'idea ...

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

Questo meccanismo funziona anche da VBScript. Che bello.

Pocketsoap funziona molto bene. Per generare i tuoi oggetti usa il generatore WSDL . Usando questo non devi analizzare nulla da solo, inoltre tutto è bello e fortemente tipizzato.

Dai un'occhiata a questo articolo di Scott Swigart sul Centro risorse MSDN VB 6.0.

Chiamare i servizi Web da Visual Basic 6, il modo più semplice

Finora ho avuto un certo successo con PocketSOAP per connettermi all'API Salesforce. Non è stato possibile utilizzare la procedura guidata WSDL perché genera nomi di file della classe wrapper utilizzando i primi 23 caratteri dei nomi delle chiamate e ciò si traduce in duplicati. Tuttavia, PocketSOAP ha funzionato abbastanza bene per me senza la procedura guidata, ed è molto più semplice rispetto all'utilizzo di XMLHTTP con DOMDocument.

Ho anche cercato di creare un wrapper in .NET o di utilizzare uno degli strumenti "Web Office Toolkit" di MS Office {versione MSO "" librerie, ma con quelle opzioni c'erano notevoli problemi di distribuzione. PocketSOAP è una semplice DLL COM, non dipendente da una particolare versione di MS Office, ed è concesso in licenza in MPL.

Il toolkit SOAP è senza dubbio il migliore che si possa ottenere. Cercare di fare la stessa cosa senza di essa richiederebbe un notevole sforzo extra. Devi avere ragioni abbastanza serie per farlo.

Il formato dei messaggi SOAP non è davvero facile da leggere o scrivere manualmente e una libreria di terze parti è altamente consigliata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top