带有 curl 的 JSONRPC 请求

Posted

技术标签:

【中文标题】带有 curl 的 JSONRPC 请求【英文标题】:JSONRPC request with curl 【发布时间】:2014-06-23 14:40:07 【问题描述】:

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

例如:

curl -d '"id":"json","method":"add","params":[1,2] ' -o – ‘http address for json rpc’

有效,但是:

curl -d '"id":"json","method":"add","params":["a":2,"b":3] ' -o – ‘http address for json rpc’’

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

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

【问题讨论】:

【参考方案1】:

您收到的特定错误(“无效参数”)确实表明您的参数类型对于您正在调用的特定方法可能是错误的,但对于寻求使用 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

【讨论】:

【参考方案2】:

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

喜欢:

curl -d '"id":"json","method":"add","params":"a":2,"b":3 ' -o – [http address for json rpc]

【讨论】:

你介意看看我关于json_rpc的问题:***.com/questions/67605266/…

以上是关于带有 curl 的 JSONRPC 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在java上使用带有curl的json rpc

cURL 错误(curl: (18) 传输已关闭,剩余 349 个字节要读取)

将带有嵌入式凭据 URL 的 cURL 请求转换为获取请求 [重复]

发送带有 http 标头的 curl 请求

即使 curl 工作,带有代理 407 状态代码的 Python 请求

如何通过 PHP 发送带有 pem 证书的 curl 请求?