当我curl
忽略Json
的“[和]”部分时,我无法让Node.js
和curl
(JSON-RPC
)工作请求参数。我正在使用命名参数(即一个对象,而不是一个数组)。
这有效:
curl -v -i POST -H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method":"registerPerson", "params": ["{\"username\":\"morten10\",\"password\":\"mypass\"}"], "id":1 }' \
http://localhost:3000
但是,当我从参数中省略[“和]”时,它不起作用:
curl -v -i POST -H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method":"registerPerson", "params": {\"username\":\"morten10\",\"password\":\"mypass\"}, "id":1 }' \
http://localhost:3000
和Jayson给出了此错误消息:
TypeError: First argument must be a string or Buffer
但是,根据JSON-RPC 2.0规范及其示例,我应该能够在使用命名参数时从params中排除“[和]”部分,如下例所示:
--> {"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 4}
<-- {"jsonrpc": "2.0", "result": 19, "id": 4}
我没有得到什么?
谢谢!
答案 0 :(得分:2)
我认为您的对象需要是错误建议的字符串。
尝试:
curl -v -i POST -H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method":"registerPerson", "params": "{\"username\":\"morten10\",\"password\":\"mypass\"}", "id":1 }' \
http://localhost:3000