我正在尝试使用pyBitmessage Curl实现将命令发布到c ++中的cpr XML-RPC服务器。像这样:
import os
import cv2
DATADIR = "D:\Datasets\PetImages"
CATEGORIES = ['Cat', 'Dog']
for category in CATEGORIES:
path = os.path.join(DATADIR, category)
for img in os.listdir(path):
img_array = cv2.imread(os.path.join(path,img), cv2.IMREAD_GRAYSCALE)
作为回报,我有 r 返回一个status_code 200,但文本结果为空,并且该错误值为:
auto r = cpr::Post(cpr::Url{ "http://xxx:yyy@localhost:8442/" },
cpr::Body{ "{\"jsonrpc\":\"1.0\",\"id\":1,\"method\":\"add\",\"params\":{\"a\":2,\"b\":3}}" },
cpr::Header{ { "Content-Type", "application/json" } });
我在做什么错了?
答案 0 :(得分:0)
我终于找到了解决方案,pyBitmessage是常规的XML-RPC,而不是像使用Bitcoind实现的JSONish版本的RPC。因此正确的调用方法是在纯XML中:
auto r = cpr::Post(cpr::Url{ "http://xxx:yyy@127.0.0.1:8442/" },
cpr::Body{ "<methodCall><methodName>add</methodName><params><param><value><int>123</int></value></param><param><value><int>456</int></value></param></params></methodCall>" });