• Publicidad

Acceso a Web Services usando SOAP y WSDL

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor explorer » 2007-10-31 12:15 @552

Los 'bless' dan la pista de que son objetos. La forma más sencilla de extraer la información es usando los métodos propios de cada objeto.

Veo que son objetos SOAP::Custom::XML::Data, que están definidos como parte de la distribución SOAP::Lite.

En el hilo que te he comentado hay ejemplos de acceso, tanto desde el cliente como del servidor, a los datos que se intercambian.

Has puesto un ejemplo del cliente. ¿Puedes poner un ejemplo corto del servidor?

Otra cosa... ¿no estarás usando Windows y .Net?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor explorer » 2007-10-31 12:23 @557

¿Has mirado la carpeta de ejemplos de SOAP::Lite?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Ithilien » 2007-11-02 03:16 @177

Hola Explorer,

Efectivamente estoy usando Windows y .NET. Da igual entonces que te ponga un ejemplo del servidor puesto que esta en .NET (además, no tengo ahora mismo acceso a él). Estuve mirando los hilos que me dijiste, pero no me dan una idea clara de cómo acceder a ellos de manera "automática" es decir, con bucles y tal. De hecho, la estructura que tengo no me deja hacer ni siquiera un foreach. Las estructuras que hay en el ejemplo son además mucho más sencillas y no solo eso, en muchos casos tienes un XML, cosa que yo no tengo porque como ves, la respuesta no está en XML.

Miraré de nuevo los ejemplos de SOAP::Lite, pero sería bueno saber si hay alguna manera de convertir toda esta información en una estructura accesible por índice o algo así.
Ithilien
Perlero nuevo
Perlero nuevo
 
Mensajes: 12
Registrado: 2007-10-25 04:33 @231

Re: Acceso a Web Services usando SOAP y WSDL

Notapor panterozo » 2011-06-01 17:15 @760

Por si alguien mas pasa por aqui..


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use SOAP::Lite +trace => [qw(debug)];
  4.  
  5. my $soap = SOAP::Lite
  6.     # uri del web service
  7.     -> uri('http://localhost/')
  8.     # En $_[1] se encuentra el nombre del método del web service. Para .NET se necesita una concatenación
  9.     -> on_action( sub { join '/', 'http://localhost', $_[1] } )
  10.     # dónde está el web service
  11.     -> proxy('http://localhost/webservice.asmx');
  12.  
  13. my $method = SOAP::Data->name('NombreMetodo')
  14.     # esto añade un namespace tipo <NombreMetodo xmlns="http://localhost/">
  15.     ->attr({xmlns => 'http://localhost/'});
  16.  
  17. # No hay necesidad de indicar que son int o string
  18. my @params = ( SOAP::Data->name(param1 => 5),
  19.                SOAP::Data->name(param1 => 'aaabbbccc'),
  20.                SOAP::Data->name(param1 => 8 )
  21.              );
  22. # Envias los datos al web service..
  23. my $result = $soap->call($method => @params);
  24. if ($result->fault)
  25. {
  26.    print $result->faultstring;
  27. }
  28. else
  29. {
  30.    print $result->result;
  31.    # Para sacar los datos, pones el nombre de la etiqueta donde vienen los datos
  32.    my @nodes = $result->valueof('//EtiquetaRetorno');
  33.    # y luego lo recorres, nodo a nodo
  34.    foreach $node (@nodes){
  35.        # Value se supone el valor de retorno del webservice.
  36.        print $node->{'value'};
  37.    }
  38. }
  39.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4




Saludos¡¡¡
panterozo
Perlero nuevo
Perlero nuevo
 
Mensajes: 160
Registrado: 2010-01-26 08:36 @400

Anterior

Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados