使用curl 进行JSONRPC 请求

use*_*873 9 json curl json-rpc

对于使用字典作为参数的所有请求,我都会遇到 32602 错误,而这些请求则使用简单的参数。

\n\n

例如:

\n\n

curl -d \'{"id":"json","method":"add","params":[1,2] }\' -o \xe2\x80\x93 \xe2\x80\x98http address for json rpc\xe2\x80\x99

\n\n

有效,但是:

\n\n

curl -d \'{"id":"json","method":"add","params":[{"a":2,"b":3}] }\' -o \xe2\x80\x93 \xe2\x80\x98http address for json rpc\xe2\x80\x99\xe2\x80\x99

\n\n

返回 32602 错误(无效参数!!!)

\n\n

我需要在参数中添加名称和类型,并且为此需要一个字典,但收到 32602 错误。怎么了 ?

\n

Cam*_*tle 7

您收到的特定错误(“无效参数”)确实表明您的参数类型对于您正在调用的特定方法可能是错误的,但对于任何寻求使用curl进行JSON-RPC调用的一般指导的人来说,这可能不是问题。

对于 JSON-RPC 2.0,规范要求传递一个指定协议版本的字符串,"jsonrpc": "2.0"该字符串在问题的示例中缺失。

下面是一个兼容的工作调用示例(使用jayson服务器进行测试):

curl -X POST \
     -H 'Content-Type: application/json' \
     -d '{"jsonrpc":"2.0","id":"id","method":"add","params":[1, 2]}' \
     http://localhost:3000
Run Code Online (Sandbox Code Playgroud)


Aus*_*ris 1

尝试在第二次尝试中删除对象括号周围的数组括号 []。

\n\n

喜欢:

\n\n
curl -d \'{"id":"json","method":"add","params":{"a":2,"b":3} }\' -o \xe2\x80\x93 [http address for json rpc]\n
Run Code Online (Sandbox Code Playgroud)\n