Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Grappling with JSON::RPC::Client

by gmargo (Hermit)
on Jan 06, 2010 at 00:20 UTC ( [id://815854]=note: print w/replies, xml ) Need Help??


in reply to Grappling with JSON::RPC::Client

I modified your code only to remove "use RPC::Lite::Client;" and add "use JSON::RPC::Client;" (and add strictures).

I did not see the error you did using the latest JSON-2.16 and JSON-RPC-0.96. It got as far as:

$VAR1 = 'HASH'; 500 Can't connect to 9999.9999.9999.9999:80 (Bad hostname '9999.9999.9 +999.9999')

so it certainly got past the constructor.

Replies are listed 'Best First'.
Re^2: Grappling with JSON::RPC::Client
by Anonymous Monk on Jan 06, 2010 at 08:57 UTC
    That was a hangover from a previous experiment with other Perl modules. Unsurprisingly 999.999.999.999 isn't a valid IP address, and the way JSON::RPC::Client appears to work is it checks the URI and goes on from there. When connecting to the valid IP it still gives me that hash error :-/

      Sorry for the late reply here.

      Did a tcpdump on Zabbix 1.8 with this, and the result seems to indicate Zabbix uses JSON RPC 2.0 only:

      [{"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Request.", +"data":"JSON-rpc version is not specified."},"id":null},{"jsonrpc":"2 +.0","error":{"code":-32600,"message":"Inval id Request.","data":"Expacting JSON-rpc version 2.0, 1 is given ."},"i +d":"1"},{"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid Re +quest.","data":"Expacting JSON-rpc version 2.0, u is given ."},"id":" +u"}

        It does not look like JSON::RPC::Client does 2.0, I found JSON::RPC::Common on CPAN which appears to, here is a code snippet for that:

        #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use JSON::RPC::Common::Marshal::HTTP; use LWP::UserAgent; my $ua = LWP::UserAgent->new; my $req_data = { jsonrpc => "2.0", method => "user.authenticate", id => "xxx", params => { user=>'yyy', password=>'zzz' }, }; my $req_obj = JSON::RPC::Common::Procedure::Call->inflate($req_data); my $m = JSON::RPC::Common::Marshal::HTTP->new; my $req = $m->call_to_request($req_obj); $req->uri('http://zabbix/api_jsonrpc.php'); my $res = $ua->request($req); my $res_obj = $m->response_to_result($res); print Dumper($res_obj);

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://815854]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (4)
As of 2024-03-29 09:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found