my $client = new JSON::RPC::Client;
$client->ua->credentials(
'localhost:8332', 'jsonrpc', 'user' => 'password'
);
my $uri = 'http://localhost:8332/';
my $obj = {
method => 'sendfrom',
params => [$account,$sendto,$btc,6], };
my $res = $client->call( $uri, $obj );
if ($res){
if ($res->is_error) { print "Error : ", $res->error_message; }
else { print Dumper($res->result); }
} else {
print $client->status_line;
}
考虑到上面的代码,如果声明它,则接受$ btc作为参数:
$btc = 0.01;
如果是,则不被接受:
$btc = 0.01;
$btc = sprintf('%.8f', $btc);
如果是:
也不被接受&ReadParse(*data);
$btc = $data{'amount'};
为什么会这样?我需要从html表单中获取$ btc值,并理想地格式化该值。
返回的错误是“500内部服务器错误”
答案 0 :(得分:0)
该服务似乎很挑剔是否提供了字符串或数字。使用以下命令强制数字化:
$btc = 0+$x;
答案 1 :(得分:0)
这是非常不寻常的行为(Perl透明地在字符串,整数和浮点数之间进行转换)但您可以通过添加零来将值强制转换为数值浮点数。
因此请使用0.0 + sprintf('%.8f', $btc)
,0.0 + $data{'amount'}
等
顺便说一下,请不要用“&”号调用子程序。只需ReadParse(*data)
即可。