Ver Mensaje Individual
  #2  
Antiguo 06-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para mi, un servicio web es la combinación de wsdl y soap aunque en algunas partes tembién entienden un xml-rpc como servicio web. Según entiendo, xml-rpc es el antecesor de soap y no requiere un archivo wsdl.

Un servicio web puede estar escrito en cualquier lenguaje y ser consumido por cualquier lenguaje, así que la extensión es indistinta. asmx, creo, se refiere los servicios web escrtos en asp, pero puedes tener servicios escritos en php, java, python, delphi, c, etc.

Dado que un servicio web se comunica mediante mensajes soap y dado que un mensaje soap no es otra cosa que un documento xml, en principio podrías usar cualquier cosa capaz de enviar, recibir y leer documentos xml para consumir un servicio.

En Delphi lo puedes hacer con Indy o WinInet, por ejemplo. Sólo tienes que hacer un Post con un Content-Type fijado a text/xml y mandar el encabezado SOAPAction con el método requerido.

Sin embargo, hacerlo así es muy rudimentario ya que tú mismo tendrías que formar el mensaje soap para llamar a un método y analizar a pie el xml de vuelta.

Ya observaste que Delphi trae un importador de wsdl, que, básicamente y hasta donde entiendo, analiza el archivo de definición y traduce las estructuras de datos definidas en el wsdl en clases derivadas de TRemotable, que te permiten acceder a dichas estructuras a la manera de Delphi, de manera que te evitas el análisis manual del xml.

Asi que me parece que es la manera más adecuada de consumir un servicio web con delphi.

En fin, yo en esto también estoy muy verde, pero es lo que he entendido hasta ahora.

// Saludos
Responder Con Cita