0

リモートエコープロシージャを呼び出すと、txjsonrpc モジュールを使用して Python で記述された rpc サーバーに呼び出しが到達します。しかし、このスクリプトは次のように述べています。

/usr/local/lib/perl/5.14.2/Moose/Meta の文字オフセット 0 ("read failed: at /us..." の前) にある、配列、オブジェクト、数値、文字列、アトムのいずれでもない不正な形式の JSON 文字列/Method/Delegation.pm 110行目

何か案が?コードはここにあります:

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=>['param']});
print $result->result, "\n";
4

1 に答える 1

2

JSON::RPC::Client のどのバージョンを使用していますか? それが最新のものである場合、サーバーが JSON オブジェクト以外のものを返しているため、そのエラーが発生しています。

于 2012-11-22T20:40:02.787 に答える