Json-Rpc

比特幣 RPC 在 bitcoin-cli 中有效,但在 python-bitcoinrpc 中無效:沒有 JSON 對象

  • May 27, 2021

我正在執行一個測試網節點。我可以很好地使用 bitcoin-cli:

>bitcoin-cli.exe getinfo
{
   "version" : 100000,
   "protocolversion" : 70002,
   "walletversion" : 60000,
[... snipped]

但是當我執行這個 python 程式碼時:

from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
import logging

rpc_user = "rpcuser"
rpc_password = "xxxxx"

logging.basicConfig()
logging.getLogger("BitcoinRPC").setLevel(logging.DEBUG)

rpc_connection = AuthServiceProxy("http://%s:%s@192.168.1.39:8332/" % (rpc_user, rpc_password))
print(rpc_connection.getinfo())

我收到此錯誤:

DEBUG:BitcoinRPC:-1-> getinfo []

Traceback (most recent call last):
 File "<path>\rawtransactiondemo\raw.py", line 11, in <module>
   print(rpc_connection.getinfo())
[... snipped]
 File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
   raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

這是我的 bitcoin.conf:

testnet=1
rpcuser=bitcoinrpc
rpcpassword=xxxxx
daemon=1
rpcport=8332
rpcallowip=192.168.1.39
bind=192.168.1.39

我正在使用python-bitcoinrpc庫。

我添加了一些程式碼來調試比特幣發回的內容 - 結果是 401 錯誤。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error</TITLE>
<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'>
</HEAD>
<BODY><H1>401 Unauthorized.</H1></BODY>
</HTML>

為什麼會觸發這個?如果您查看我的 bitcoin.conf 和我的 python 程式碼,您可以看到使用者名不同(bitcoinrpc 與 rpcuser)。改變它修復了它。

無論如何,如果您收到錯誤ValueError: No JSON object could be decoded,這可能是您的問題。

引用自:https://bitcoin.stackexchange.com/questions/36433