none
Consumir Servicio WEB desde VB6 RRS feed

  • Pregunta

  • Estimados:

    Se que el tema es un poco antiguo, pues desde .NET esto resulta algo muy sencillo; sin embargo se me presenta dar solución al problema desde VB 6.0, pues existe una aplicación que aun es utilizada en la empresa y requiere acceder al siguiente servicio WEB:

    Transcrivo el WSDL:

    <definitions targetNamespace="http://policia.cnt.com.ec/policiaGps/webservices">

    <types>

    <xsd:schema targetNamespace="http://policia.cnt.com.ec/policiaGps/webservices">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
    <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>

    <xsd:complexType name="ActualizarIncidenteIn">

    <xsd:all>
    <xsd:element name="codigo" type="xsd:string"/>
    <xsd:element name="estado" type="xsd:string"/>
    <xsd:element name="placa" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="ActualizarIncidenteOut">

    <xsd:all>
    <xsd:element name="respuesta" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="GetCoordenadasIncidenteIn">

    <xsd:all>
    <xsd:element name="codigo" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="GetCoordenadasIncidenteOut">

    <xsd:all>
    <xsd:element name="longitud" type="xsd:string"/>
    <xsd:element name="latitud" type="xsd:string"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:schema>
    </types>

    <message name="ActualizarIncidenteRequest">
    <part name="ActualizarIncidenteEntrada" type="tns:ActualizarIncidenteIn"/>
    </message>

    <message name="ActualizarIncidenteResponse">
    <part name="ActualizarIncidenteRespuesta" type="tns:ActualizarIncidenteOut"/>
    </message>

    <message name="GetCoordenadasIncidenteRequest">
    <part name="GetCoordenadasIncidenteEntrada" type="tns:GetCoordenadasIncidenteIn"/>
    </message>

    <message name="GetCoordenadasIncidenteResponse">
    <part name="GetCoordenadasIncidenteRespuesta" type="tns:GetCoordenadasIncidenteOut"/>
    </message>

    <portType name="IncidentesServicePortType">

    <operation name="ActualizarIncidente">
    <input message="tns:ActualizarIncidenteRequest"/>
    <output message="tns:ActualizarIncidenteResponse"/>
    </operation>

    <operation name="GetCoordenadasIncidente">
    <input message="tns:GetCoordenadasIncidenteRequest"/>
    <output message="tns:GetCoordenadasIncidenteResponse"/>
    </operation>
    </portType>

    <binding name="IncidentesServiceBinding" type="tns:IncidentesServicePortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

    <operation name="ActualizarIncidente">
    <soap:operation soapAction="http://policia.cnt.com.ec/policiaGps/webservices/incidentesService.php/ActualizarIncidente" style="rpc"/>

    <input>
    <soap:body use="encoded" namespace="http://policia.cnt.com.ec/policiaGps/webservices" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>

    <output>
    <soap:body use="encoded" namespace="http://policia.cnt.com.ec/policiaGps/webservices" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>

    <operation name="GetCoordenadasIncidente">
    <soap:operation soapAction="http://policia.cnt.com.ec/policiaGps/webservices/incidentesService.php/GetCoordenadasIncidente" style="rpc"/>

    <input>
    <soap:body use="encoded" namespace="http://policia.cnt.com.ec/policiaGps/webservices" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>

    <output>
    <soap:body use="encoded" namespace="http://policia.cnt.com.ec/policiaGps/webservices" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    </binding>

    <service name="IncidentesService">

    <port name="IncidentesServicePort" binding="tns:IncidentesServiceBinding">
    <soap:address location="http://policia.cnt.com.ec:8080/policiaGps/webservices/incidentesService.php"/>
    </port>
    </service>
    </definitions>


    Mi problema es que no se como consumir esto desde VB 6 lo he intentado con SOAP 3.0 pero no logro consumir el servicio.

    No se como definir las variables que requiere el servicio para los dos metodos.


    Por favor una ayuda urgente
    domingo, 17 de enero de 2010 13:23

Todas las respuestas

  • En mi caso no me complicaría intentando hacer la petición desde VB6, crearia una dll en .NET (VB o C#) con interoperabilidad COM para que pudiese ser instanciada desde VB6, Esta clase haría de puente(bridge) entre el Web service(s) y tu aplicación VB6.

    El punto en contra de este metodo, es que en la máquina cliente que ejecutase tu aplicación debería tener instalado el .Net Framework.

    Un saludo.
    martes, 19 de enero de 2010 10:45
  • En mi caso no me complicaría intentando hacer la petición desde VB6, crearia una dll en .NET (VB o C#) con interoperabilidad COM para que pudiese ser instanciada desde VB6, Esta clase haría de puente(bridge) entre el Web service(s) y tu aplicación VB6.

    El punto en contra de este metodo, es que en la máquina cliente que ejecutase tu aplicación debería tener instalado el .Net Framework.

    Un saludo.
    http://www.elguille.info/colabora/NET2005/lveliz_ConsumiendoUnWebServiceDesdeVB6.htm
    miércoles, 27 de enero de 2010 10:03