Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-03-2010
XaviQ XaviQ is offline
Registrado
 
Registrado: ene 2010
Posts: 3
Poder: 0
XaviQ Va por buen camino
Dudas sobre Webservices Soap y Indy

Buenos dias.

La verdad que me estoy metiendo actualmente con el tema de webservices, donde tengo que consumirlos desde delphi y me salen unas dudas que a ver si las podemos comentar.

- Entiendo lo que es el fichero .wsdl, un fichero donde se tiene definido los metodos, propiedades de dicho webservices, ese fichero se puede importar en delphi y te genera el modulo de donde puedes usar esos metodos y consumir el webservices, ahi ya he echo alguna prueba.
Pero tambien existen webservices que no usan estos ficheros de definicion verdad?
- Otra duda, todo webservices esta compuesto de una url acabada en la extension .asmx? o no tiene porque?
- A un webservices siempre se le tendra que llamar usando algun metodo? o puede ser que haya webservices simples que llamandolo te devuelvan un xml?

Y por ultimo que metodologia usais para consumir webservices desde delphi?
Yo he comenzado intentantdo usar los componentes Indy pero no se bien bien si voy por el biuen camino, os cuento una prueba simple:
Donde intento llamar a un webservices y grabar en disco el xml que me tendria que devolver.
urlweb := '<aqui vendria la url del webservices>';

Content := IdHTTP1.Get(urlweb);
XMLDocument1 := TXMLDocument.Create(nil);
XMLDocument1.Active := True;
XMLDocument1.XML.Text := Content;
XMLDocument1.XML.SaveToFile('c:\prueba.xml');
XMLDocument1.Active := False;

Voy bien por ese camino? o el IdHTTP no se usa para consumir webservices SOAP?
La verdad que estoy un poco verde y estoy intentando recabar toda la informacion que pueda encontrar por internet.

Muchas Gracias.
Responder Con Cita
  #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
Poder: 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
  #3  
Antiguo 29-03-2011
jpiedra jpiedra is offline
Registrado
NULL
 
Registrado: mar 2011
Posts: 3
Poder: 0
jpiedra Va por buen camino
Hola, yo tengo un wsdl que lo he importado a Delphi, pero no me muestra ningún metodo para poder accesar, es decir, me muestra nada mas esto

unit TimbradorIntegradores_v5;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

implementation

initialization

end.

Que estoy haciendo mal?

GRacias de antemano
Responder Con Cita
  #4  
Antiguo 29-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Posiblemente el wsdl del servicio no especifica correctamente los métodos. ¿Es un servicio público? ¿Puedes dar la dirección?

// Saludos
Responder Con Cita
  #5  
Antiguo 29-03-2011
jpiedra jpiedra is offline
Registrado
NULL
 
Registrado: mar 2011
Posts: 3
Poder: 0
jpiedra Va por buen camino
Si claro, es
No tengo permitido poner url todavia, lo paso así, ojala se entienda

"
://201.103.89.93:59080

/axis2/

services/

TimbradorIntegradores?wsdl"

El WS es no visible, lo he importado en VS pero no tengo idea de como implementarlo en Delphi

Alguien ha hecho algo parecido?

Gracias de antemano
Saludos
Responder Con Cita
  #6  
Antiguo 30-03-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
La respuesta que te dió *román* es mu acertada. he desarrollado mis websevice en php (nuSOAP) para consumirlos desde delphi. aunque he consumido otrso webservice algunos en asp otros ni siquiera se en que los habrán hecho.

importarlos es bastante sencillo con el asistente de delphi... pero el asistente de delphi tiene que "ver" el xml que genera el wsdl. de otra manera el asistente de importación no funcionará correctamente.

la url que nos pasaste no se si está correcta:

http://201.103.89.93:59080/axis2/ser...gradores?wsdl"

pero allí no despliega absolutamente nada.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 30-03-2011
Avatar de Behemot
Behemot Behemot is offline
Miembro
 
Registrado: oct 2005
Posts: 15
Poder: 0
Behemot Va por buen camino
Parece ser que es la versión de delphi, mira este link
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas y dudas enviando comandos al servidor FTP con Indy Gromeer Internet 8 01-02-2008 23:27:04
Dudas sobre las api de windows Barbaro API de Windows 2 26-12-2005 14:11:32
Dudas sobre TTreeView jodycom Varios 2 18-04-2005 10:03:50
Sobre los instaladores e Indy SMTZ Varios 0 26-11-2004 18:47:24
Dudas sobre IP acertij022 Internet 0 20-05-2003 21:04:29


La franja horaria es GMT +2. Ahora son las 04:01:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi