![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
#1
|
||||
|
||||
Xml-rpc
Hola amig@s !
Llevo dos días completos buscando por todo internet algo acerca de cómo implementar XML-RPC con Delphi ... y evidentemente estoy ya desesperado y recurro a vosotros a través de este foro. Necesito implementar una comunicación XML a traves de XML-RPC, ya que el sitio Web al que me voy a conectar ha desestimado la opción de SOAP. Por más que busco en este foro, en Google, en todos los sitios, doy con librerias, con artículos, con hilos de este foro, etc, pero no consigo implementar nada de nada. He intentado con TIdHTTP y POST, he intentado no sé cuantas otras opciones pero todas ellas me llevan a ningún sitio. Además tengo que indicar que la página a la que me debo conectar es 'https//' por lo que además estoy haciendo pruebas con los componentes SSL de Indy 10. Primero, alguien puede ayudarme y guiarme un poco hace el camino correcto ? Segundo, alguien sabe de algún sitio activo al día de hoy (que no sea https, sino http) en el cual se pudieran hacer algunas pruebas ? Os estaré eternamente agradecidos ! ![]()
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Hola gluglu, lo único que sé de SML-RPC es que es la versión original, limpia y primigenia de lo que es hoy SOAP (después de meter mano microsoft).
Aparte de wikipedia y el sitio oficial, que seguro que los has visto, he encontrado este proyecto en sourceforge, que no sé si te servirá. Ojalá te sirva. http://sourceforge.net/projects/delphixml-rpc/ |
#3
|
||||
|
||||
Hola Casimiro !
Sí, he consultado ya esa página y otras tantísimas más. El proyecto Sourceforge está obsoleto y la última actualización es del 2003. Encontré varias páginas que indican 'en cierta manera' como se podría 'a lo mejor' adaptar a las nuevas versiones de delphi (en mi caso D2007). He encontrado otras páginas, de las cuales destaco esta : http://xenno-delphi.blogspot.com/200...i-xml-rpc.html Tampoco he llegado a buen fin porque 'no me entero' .... ![]() Al momento de escribir esta contestación, me he bajado la librería RealThinClient y estoy haciendo pruebas. Respecto de esta libreria dos asuntos : el 7 Sept 2011 publicaron una versión ( 4.35) de prueba, no comercial, pero totalmente operativa (sin fuentes). No puedo instalarla porque da error. Encontré otra versión anterior (2.74) de la misma librería en Torry's. He bajado e instalado esa versión y al momento de ahora consigo conectarme con ciertas páginas que ofrecen servicios XML-RPC, y que se listan en la propia página del proyecto. Al menos ahora, con los componentes de RTC, consigo hacer las conexiones y que cuanto menos me devuelva un código de error. Logro mandar información, leer información y logro ver el error que me dá. Por otro lado, esa implementación NO me está dando resultados con la página a la que realmente deseo acceder, pero ese sería un asunto diferente, ya que estoy en contacto directo con el proveedor de servicios y estamos entre los dos intentando darle una solución ya que el no conoce Delphi. Al momento de ahora, y de hoy, se ha ido de fin de semana y hasta el lunes no vuelve, por lo que no puedo consultar realmente por qué no me funciona, lo que ahora me funciona con ciertos servicios de por ahí, con su página. Hasta ahí he llegado por lo menos ! ![]() Ahora bien, he intentado implementar esa prueba que acabo de hacer y que me 'funciona' con los componentes RTC, a través de TIdHTTP, ya que hay muchos comentarios en estos foros de gente que ha hecho conexiones XML-Rpc con los componentes de Indy. También parece ser que están muy puestos en estos asuntos los compañeros dec y seoane, y han dado otras soluciones por estos foros. Pero como indico, por ese lado no consigo avanzar. En teoría, XML-Rpc es de lo más simple, pero en mi caso no logro dar con la tecla correcta por lo menos en lo que a componentes directos de Delphi (incluyo Indy en esa definición), y no quisiera depender directamente de la libreria RTC. Al menos he conseguido ya una determinada 'solución' con esos componentes, aunque sea una versión anterior. ![]()
__________________
Piensa siempre en positivo ! |
#4
|
||||
|
||||
No tengo ni idea, nunca lo he usado
![]() Puede que Dec o Seoane puedan ayudarte, Yo les enviaría un mensaje, por preguntar no pierdes nada. Por cierto, la web de seoane es esta. Siento no poder ayudar con esto, pero escapa casi por completo de mis conocimientos ![]() |
#5
|
||||
|
||||
Por si a alguien le sirve alguna vez de ayuda ....
He encontrado esto : http://code.google.com/p/xmlrpc-test/ y he pinchado en esa página en el link de la Online Demo. Ahí funciona todo lo que pretendo, pero claro .... no es Delphi ! ![]()
__________________
Piensa siempre en positivo ! |
#6
|
||||
|
||||
xml-rpc no es un estandar fijo, es mas bien una idea de como se puede hacer. Osea, no existe un modelo preciso de como operarlo, al contrario de SOAP. Ademas, es mas popular entre los lenguajes script como python, ruby & php.
Con todo, xml-rpc es solo una capa SOBRE http. Hacer XML-RPC es cuestion de hacer HTTP, y luego parsear los XML. No es tan dificil como suena, y se puede hacer una implementacion cutre en un par de horas... http://mail-archives.apache.org/mod_...l.gmail.com%3E Cita:
http://wiki.freepascal.org/Web_Service_Toolkit De hacerlo a mano, lo haria con synapse. Es mucho mas facil con una libreria que NO es visual. Es el tipo de tareas donde RAD es mala idea. Tambien puedes empezar a expandir tus horizontes y aprovecharte de tanto codigo que hay en *otros* lenguajes. A veces, simplemente lo mejor esta en otro lado ![]() Varias veces donde no he encontrado una solucion en X lenguaje, me pregunto en que lenguaje debe existir la solucion mas elegante, miro alli como lo hacen y luego me regreso a casa. Por ejemplo, este es un cliente XML-RPC en python: http://docs.python.org/library/xmlrpclib.html Y codigo: http://hg.python.org/cpython/file/2.7/Lib/xmlrpclib.py P.D. Tambien podrias importar librerias de python usando http://mmm-experts.com/products.aspx?productid=3. Funciona muy bien, si no te importar desplegar la dll de python + archivos .py, o puedes encapsular el codigo en una linea de comandos e invocarlo en el background. O sea, opciones es lo que hay!
__________________
El malabarista. |
#7
|
||||
|
||||
Bueno ....
Quiero escribir estas líneas adicionales para daros las gracias a todos los que habeis intervenido. Finalmente conseguí enlazar con la librería RTC. No pongo el código porque al ser una librería específica no creo que tenga mucho sentido. No contento con ello, me dije que tenía que ser posible hacer lo mismo con el componente TIdHTTP de las Indy que vienen con el propio Delphi. Pues efectivamente, se puede y es INMEDIATO. Lo único que pasa, como siempre, es que hay que saber las dos o tres líneas que hay que poner para que funcione. He hecho pruebas tanto con servidos http como con https y en el formulario de prueba tengo colocado el componente SSL de las Indy enlazado con el IdHTTP y en ambos casos funciona correctamente. Es decir, para página 'no SSL' no hace falta quitar expresamente el componente SSL. El componente TIdHTTP lo coloco en el formulario, sin más, sin cambiar ninguna opción ni propiedad. El misterio estaba en que existen varios métodos de hacer el Post con TIdHTTP. El que ahora mismo me está funcionando es el que hace uso de un StringStream, para que al parecer la conversión del código XML se realice adecuadamente.
... y eso es todo. ... menudas vueltas que le tuve que dar ! ![]() Edito : Tengo que cambiar las etiquetas '<' y '>' de las líneas de código XML para que se vea algo en este hilo.
__________________
Piensa siempre en positivo ! Última edición por gluglu fecha: 11-09-2011 a las 20:17:03. |
#8
|
||||
|
||||
Me alegra que lo hayas conseguido
![]() Estas cosas pasan a menudo, te tiras varios días o semanas para hacer algo y cuando lo acabas te dice el jefe: "¿y tanto tiempo para eso?, sin son 3 líneas". Te dan ganas de mandarlo a... pero te aguantas ![]() El problema es que no podemos saberlo TODO, hay que investigar, hacer pruebas, preguntar, etc. hasta encontrar el resultado. Esta vez ha sido otro logro de tu parte, enhorabuena, y ahora a sacarle provecho ![]() |
#9
|
||||
|
||||
Buenas...
stoy intentando conectarme a una aplicación y no consigo entender del todo cómo conectarme. Podrías indicarme cómo hacer lo siguiente? llamar a la función "login" con los siguientes parámetros nombrebbdd, usuario, password llamar a la función "execute" con los parámetros nombrebbdd, idconexion, password, parametro1,parametro2, parametro3 Sería algo así ?
Gracias de antemano y un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
![]() |
|
|
![]() |
|