Usuario
Consumir Servicio WEB desde VB6

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
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. -
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.
http://www.elguille.info/colabora/NET2005/lveliz_ConsumiendoUnWebServiceDesdeVB6.htm
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.