Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

JSON::RPC::Client Not a HASH reference Error

by gpost (Initiate)
on Nov 22, 2012 at 20:38 UTC ( [id://1005184]=perlquestion: print w/replies, xml ) Need Help??

gpost has asked for the wisdom of the Perl Monks concerning the following question:

When i call remote 'echo' procedure my call reachs to rpc server, it processes parameters and return value. But response doesnt reach to client. Error:

Not a HASH reference at /usr/share/perl5/JSON/RPC/Client.pm line 193

Any idea? Code is here:

use LWP::UserAgent; use JSON::RPC::LWP; use Net::SSL (); use JSON::RPC::Client; $ENV{HTTPS_DEBUG} = 1; # CA cert peer verification $ENV{HTTPS_CA_FILE} = 'ca_file'; $ENV{HTTPS_CA_DIR} = 'ca_dir'; # Client PKCS12 cert support $ENV{HTTPS_PKCS12_FILE} = 'pkcs12 cert'; $ENV{HTTPS_PKCS12_PASSWORD} = 'password'; my $ua = eval { LWP::UserAgent->new() } or die "Could not make user-agent! $@"; $ua->ssl_opts( verify_hostname => 0); print "JSON RPC CONNECTION\n"; my $rpc = JSON::RPC::Client->new( ua => $ua, version => '2.0' ); my $result = $rpc->call( 'https://...', {method=>'echo', params=>['par +am']}); print $result->result, "\n";

Replies are listed 'Best First'.
Re: JSON::RPC::Client Not a HASH reference Error (the source)
by tye (Sage) on Nov 22, 2012 at 21:45 UTC

    Why did you not look at "line 193" of "/usr/share­/perl5/JSO­N/RPC/Clie­nt.pm" ? Wouldn't that be the first logical thing to do?

    I went to search.cpan.org and searched for that module, JSON::RPC::Client, clicked the "Source" link, pasted that into my editor, and jumped to line 193.

    I don't know if this is the same version of the module that you are using, but getting that error at that line appears to make sense:

    sub new { my ($class, $obj, $json) = @_; my $content = ( $json || JSON->new->utf8 )->decode( $obj->content +); my $self = bless { jsontext => $obj->content, content => $content, }, $class; $content->{error} ? $self->is_success(0) : $self->is_success(1); # ^line 193 $content->{version} ? $self->version(1.1) : $self->version(0) ; $self; }

    I'll give you a chance to diagnose the problem from there. It doesn't appear particularly difficult to me.

    - tye        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1005184]
Front-paged by tye
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-03-29 08:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found