SOAP Webservice

segudj

Hola buenas, me gustaria saber si alguien de aqui controlaba un poco sobre SOAP Webservice.

Necesito hacer una simple petición y con el material que encuentro por internet no acabo de entenderlo muy bien.

Si alguie supiese, estaria agradecidisimo. Todo lo que vaya aprendiendo lo postearé aqui. Gracias.

Gracias a Cabron #4

SOAPUI Para JAVA
cabron

Yo he trabajado con Webservices pero hace ya algunos años y no lo he vuelto a tocar, así que no sé si me acordaré de algo, ¿qué duda tienes?

segudj

Como crearia una conexión a un web service y como podria usar un metodo(Aunque sea simple) de ese webservice, por ejemplo:
Este es el webservice de comunio.
http://www.comunio.es/soapservice.php?wsdl

Y me gustaria obtener el valor de un equipo. Es complicado? es que no veo como obtenerlo jejeje. PHP sé usar.

1 respuesta
cabron

#3

Un mensaje SOAP es una llamada a un método pero metida dentro de un xml, para que te hagas una idea, si un servidor tiene una función llamada miFunción que recibe dos números enteros como parámetros, si la llamases de forma normal lo harías con:

miFuncion(4,6):

Para hacerlo por webservice lo conviertes en:

<miFuncion>
     <param1>4</param1>
     <param2>6</param2>
</miFuncion>

Vale el xml no es tan simple, es solo para que te hagas una idea.

Por suerte hay herramientas que te pueden generar el xml exacto a partir del wsdl, yo en su día usaba SoapUI. Te lo bajas, le metes el wsdl y te genera el xml que tienes que utilizar para hacer la petición.

Luego ese xml lo envías con lo que sea que tenga php para enviar peticiones soap (yo trabajaba con java así que ahí no te puedo aydar)

1 1 respuesta
segudj

#4 muchisimas gracias. Eres un crack tio. Voy a ir haciendo recopilación en el post por si a alguién más le pueden ayudar las cosas que vaya averiguando.

1 respuesta
Merkury

#5 Mira, aquí hay una explicación bastante clara y sencilla de como consumir un WebService hecho en Java con nuSOAP http://users.skynet.be/pascalbotte/rcx-ws-doc/phpclient.htm

1 respuesta
segudj

#6 gracias. A ver si consigo aclararme XD

1 respuesta
Merkury

#7 Lo básico, si vas a hacerlo con PHP es que tienes que crear un objeto client SOAP, pasarle el endpoint (que es donde esta hosteado el servicio) y hacer la llamada a la función que quieras, pasándole los parámetros necesario (de tenerlos) y el webservice te devolverá normalmente un array con los resultados.

Una vez hecho todo eso, simplemente has de acceder el array y usar la información.

1 1 respuesta
segudj

#8 Es que intento acceder a los datos pero nunca muestra nada. Probaré a seguir los pasos esos

Merkury

Comprueba que la respuesta es OK.

Y siendo un servicio SOAP, si accedes a la url, podrás ver las funciones con su firma, etc para saber como llamarlas y demás.
Y hazte un var_dump del resultado para ver si hay o no hay datos.

RaymaN

Te aviso de que el soap de Comunio está muy limitado y la mayoría de funciones importantes requieren un registro especial que no conceden a nadie xD

1 respuesta
segudj

#11 enserio? lo unico que deseo es obtener los puntos de una comunidad usando el nombre del usuario, nada más.

1 respuesta
RaymaN

#12 eso no se puede hacer, yo lo hago mediante scraping.

Usuarios habituales

  • RaymaN
  • segudj
  • Merkury
  • cabron