Página 2 de 2

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-23 09:14 @426
por luisbal
Es verdad, me equivoque en el código: el $id que puse en realidad es $idcomercio.

$idcomercio, en este caso 64, es el código que me identifica o autentifica ante el server (además que ellos tienen registrado ya mi IP).

He hecho la prueba nuevamente pero aparece la misma respuesta extensa. ¿Qué puede ser?

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-23 09:30 @438
por explorer
Ni idea. Yo veo que responde, pero no veo resultados. Bueno, quizás porque mi IP no está registrada :)

Tendrás que ponerte en contacto con su administrador, y remitirle el resultado del 'trace' (no el resultado que sale con el Dumper), para que vea que la petición que haces al servidor sea correcta.

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-23 12:10 @548
por luisbal
Muchas gracias por todo, explorer. Ok, le enviaré el trace... pero una última ayuda en este punto: ¿cuál es el trace? Si lo que sale es el Dumper... ¿Cómo hago para obtener el trace? Se trata del código anterior xml que has pegado en tu post?

Gracias otra vez, este foro es de lo mejor que hay.

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-23 16:35 @732
por explorer
La salida del 'debug' gracias al 'trace' es lo que sale a través de la salida estándar (y error estándar).

Si estás ejecutando el programa desde la línea de comandos, es la salida que contiene las cabeceras HTTP, de envío y respuesta del servidor.

Si dejas comentada la línea del Dumper (o la borras), entonces lo verás claramente.

Si ejecutas el programa desde un navegador web, es más complicado, porque esa salida estará en el(los) fichero(s) log del servidor web.

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-27 18:14 @801
por luisbal
Hola, estimado explorer: estuve trasteando el fin de semana revisando códigos y, aunque no consigo una respuesta válida, al menos el Dumper ya me da algún indicio:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$VAR1 = \[
            {
              'Error' => {
                         'text' => 'El parametro IdComercio es obligatorio.',
                         'code' => '1'
                       }
            }
          ];
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


EL PROBLEMA es que no sé por qué me dice eso, cuando el IdComercio lo he especificado. Aquí el script:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. $idcomercio = "64";
  3. $ideditorial = ""; #opcional
  4.  
  5. use SOAP::Lite +trace => 'debug';
  6. use Data::Dumper;
  7.  
  8. $service = SOAP::Lite
  9.    -> uri("http://ws.leer-e.es")
  10.    -> service("http://ws.leer-e.es/wsdl/editorial.wsdl"); # me dijeron use service en vez de proxy
  11.    
  12.  my $param1 = SOAP::Data->name('IdComercio')->value('$idcomercio')->type('int');
  13.  my $param2 = SOAP::Data->name('IdEditorial')->value('$ideditorial')->type('int');
  14.  
  15.  my $result = $service->getEditoriales(
  16.      $param1,
  17.      $param2,
  18.      );
  19.  
  20. print "Content-Type: text/plain\n\n";
  21.  
  22. print $result; #el print $result me arroja "ARRAY(0x9188de4)"
  23. print Dumper \$result;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Alguna solución?
gracias

Re: Cliente webservice en Perl

NotaPublicado: 2011-09-27 20:13 @884
por explorer
Esto:

'$idcomercio'

y esto

'$ideditorial'

en las líneas 12 y 13 son errores: has colocado variables entre comillas simples, con lo que estás pasando las cadenas de caracteres '$idcomercio' y '$ideditorial', y no los valores de las variables...

Anda... quita esas comillas simples...