• Publicidad

Cliente JSON para consumir servicio con Dancer

¿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.

Cliente JSON para consumir servicio con Dancer

Notapor scout » 2011-06-27 09:24 @433

Hola buenas. Ya teniendo el servicio web creado con Dancer me dispongo a crear un cliente que pueda consumir dicho servicio y mostrar la misma información que se muestra poniendo la URL pero en la aplicación… para ello adapte el código que encontré en CPAN en el módulo JSON::RPC::Client;
El cliente lo apunto a la dirección del servicio que en teoría funciona… pero me aparece el siguiente error… ahora bien, no sé si el error está en el servicio o en el cliente… o simplemente comencé de forma errónea... el que me pueda dar una mano se lo agradeceré...


Datos del servicio:

Dirección desde donde se ven los resultados a la base de datos: http://192.168.1.x:3000/id/

El servicio no tiene nada más que una consulta a una base de datos.


Error

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:\Documents and Settings\admin>perl c:\dancercliente.pl
JSON::RPC::Client=HASH(0x29a13c)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Código del cliente...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2. use warnings;
  3. use JSON::RPC::Client;
  4.  
  5. my $client = new JSON::RPC::Client;
  6. my $url    = 'http://192.168.1.x:3000/id/';
  7.  
  8. my $llamadodedirecciones = { method => '', params => [], };
  9. my $res = $client->call( $url, $llamadodedirecciones );
  10. $client->prepare( $url, [ '', 'echo' ] );
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2011-06-27 09:32 @438, editado 1 vez en total
Razón: json => JSON, dancer => Dancer, cpan => CPAN, modulo => módulo, formateado con perltidy, marcas texto, marcas perl, ortografía
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Publicidad

Re: Cliente JSON para consumir servicio con Dancer

Notapor explorer » 2011-06-27 18:46 @823

¿Error? Yo veo que sale un hash bautizado como JSON::RPC::Client...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cliente JSON para consumir servicio con Dancer

Notapor scout » 2011-06-28 03:47 @199

Ok, paso siguiente, utilicé while() para imprimir por pantalla el contenido del hash y no me muestra nada del contenido que tendría que mostrar, solo da un error de 404, que, revisando el URL, es correcto. Por ello no puedo identificar el error.

use strict;
use warnings;
use JSON::RPC::Client;

my $client = new JSON::RPC::Client;
my $url = 'http://192.168.1.42:3000/';
my $valor ;
my %hash ;

my $llamadodedirecciones = {
method => '',
params => [],
};
my $res = $client->call($url, $llamadodedirecciones);

if($res) {
if ($res->is_error) {
print "Error : ", $res->error_message;
}
else {
print $res->result;
}
}
else {
print $client->status_line;
}

$client->prepare($url, ['', 'echo']);
#print $client;
while (($client,$valor) = each %hash){
print "$client = $valor\n";
}
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Cliente JSON para consumir servicio con Dancer

Notapor scout » 2011-06-29 04:12 @216

Probando el servicio la respuesta en un navegador es la siguiente.

JOSE
BARTOLOME
FERNANDO
ANA

El código del servicio web se conecta a una base de datos y va imprimiendo los valores como cualquier consulta , pero necesito saber si en lugar de imprimir el resultado se tiene que dejar en otro formato para que el cliente que os puse anteriormente lo pueda leer correctamente...

while (($Nombre) = $sth->fetchrow_array) {
print "$Nombre \n";
}
};
start;

se agradece cualquier piedrita de conocimiento…
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Cliente JSON para consumir servicio con Dancer

Notapor explorer » 2011-06-29 05:21 @264

Si estás usando JSON::Client, entonces él está esperando a que la respuesta que obtiene del servidor debe estar en formato JSON.

En la distribución JSON::RPC también existe el JSON::Server.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cliente JSON para consumir servicio con Dancer

Notapor scout » 2011-06-30 09:09 @423

Seguramente el duro soy yo y me faltan conocimientos, así pondré otro hilo con una variante utilizando un servicio en otro lenguaje y conectar el mismo cliente Perl, y así voy siguiendo ambos casos y ver de sacarlos adelante.
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618


Volver a Intermedio

¿Quién está conectado?

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