Como parámetro tengo un fichero XML (que ya tengo formado) y como respuesta otro XML, ahora ignoro de qué manera hacer la llamada concreta al servicio y a la función deseada dentro de este y como pasar el parámetro.
También ignoro según la definción del WSDL si necesito el SOAP o me basta con MSXML2.XMLHTTP (según esto)
He leido acerca de SOAP y WSDL y bueno, algo he logrado enterarme pero ahora ignoro de que manera realizar la llamada desde ASP...
La definición del WSDL es esta:
Código:
O sea, quiero invocar un servicio:<wsdl:definitions targetNamespace="https://www.url_proveedor.es/proveedor/axis/SolicitudService"> <wsdl:message name="registrarXmlRequest"> <wsdl:part name="xml" type="xsd:string"/> </wsdl:message> <wsdl:message name="registrarXmlResponse"> <wsdl:part name="registrarXmlReturn" type="xsd:string"/> </wsdl:message> <wsdl:portType name="JaxRpcSolicitudService"> <wsdl:operation name="registrarXml" parameterOrder="xml"> <wsdl:input message="impl:registrarXmlRequest" name="registrarXmlRequest"/> <wsdl:output message="impl:registrarXmlResponse" name="registrarXmlResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="SolicitudServiceSoapBinding" type="impl:JaxRpcSolicitudService"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="registrarXml"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="registrarXmlRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://servicioweb.agencia.com" use="encoded"/> </wsdl:input> <wsdl:output name="registrarXmlResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="https://www.url_proveedor.es/proveedor/axis/SolicitudService" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="JaxRpcSolicitudServiceService"> <wsdl:port binding="impl:SolicitudServiceSoapBinding" name="SolicitudService"> <wsdlsoap:address location="https://www.url_proveedor.es/proveedor/axis/SolicitudService"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
https://www.url_proveedor.es:443/pro...licitudService
Dentro de este la función registrarXml con los parámetros input registrarXmlRequest y output registrarXmlResponse, formateados en Base 64.
¿Como se ajusta esto al siguiente código? ¿Como se si es GET o POST o ninguna de ellas (el WSDL define un binding style="rpc")? Este código me da una URL de un servicio, pero como invoco una función dentro de este servicio?:
Código:
Gracias dim objXML set objXML = CreateObject("MSXML2.ServerXMLHTTP") objXML.Open "GET", strURL, False 'SUPONGO QUE AQUI INVOCO EL SERVICIO ¿COMO INVOCO LA FUNCIÓN? objXML.Send strQuote = objXML.ResponseText 'SUPONGO QUE AUI CAPTURO LA RESPUESTA set objXML = nothing