Pregunta

Necesito consumir un servicio web externo desde mi programa VB6.Quiero poder implementar mi programa sin el kit de herramientas SOAP, si es posible, pero eso no es un requisito.No tengo la fuente del servicio web y no la creé.Es un servicio proporcionado por el proveedor.

Entonces, fuera del kit de herramientas SOAP, ¿cuál es la mejor manera de consumir un servicio web desde VB6?

¿Fue útil?

Solución

Utilizo esta función para obtener datos de un servicio 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

Otros consejos

.NET tiene un buen soporte para servicios web desde el primer día, por lo que puede desarrollar la lógica del cliente de su servicio web en .NET como una biblioteca/ensamblaje .dll y usarlo en la aplicación VB6 a través de COM Interop.

Suponiendo que esté ejecutando Windows XP Professional o superior, un método interesante es utilizar el apodo SOAP.Aquí hay un ejemplo, extraído de alguna página de MSDN.No sé si este servicio en particular funciona, pero ya entiendes la idea...

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

Este mecanismo también funciona desde VBScript.Lo cual es bueno.

Jabón de bolsillo Funciona muy bien.Para generar tus objetos utiliza el generador WSDL.Al usar esto, no tiene que analizar nada usted mismo, además todo es agradable y está fuertemente tipado.

Consulte este artículo de Scott Swigart en el Centro de recursos de MSDN VB 6.0.

Llamar a servicios web desde Visual Basic 6, de forma sencilla

Hasta ahora he tenido cierto éxito al utilizar PocketSOAP para conectarme a la API de Salesforce.No pude usar el Asistente WSDL porque genera nombres de archivos de clases contenedoras usando los primeros 23 caracteres de los nombres de las llamadas, y esto genera duplicados.Sin embargo, PocketSOAP me ha funcionado bastante bien sin el asistente y es mucho más sencillo que usar XMLHTTP con DOMDocument.

También busqué la posibilidad de crear un contenedor en .NET o usar una de las bibliotecas del "Kit de herramientas de servicios web de MS Office {versión MSO}", pero hubo importantes problemas de implementación con esas opciones.PocketSOAP es una DLL COM simple, que no depende de ninguna versión particular de MS Office y tiene licencia MPL.

Podría decirse que el kit de herramientas SOAP es lo mejor que puede conseguir.Intentar hacer lo mismo sin él requeriría un esfuerzo adicional considerable.Es necesario tener razones bastante serias para hacerlo.

El formato de los mensajes SOAP no es realmente fácil de leer o escribir manualmente y se recomienda encarecidamente una biblioteca de terceros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top