Json RPC 错误 32600

Posted

技术标签:

【中文标题】Json RPC 错误 32600【英文标题】:Json RPC error 32600 【发布时间】:2012-04-03 07:15:29 【问题描述】:

我正在使用 jquery ajax 将 json rpc 请求传递给远程服务器。这是我的 json 字符串:

"jsonrpc":"2.0","method":"merchant_check","params":"hostID":150999,"orderID":107,"amount":"7777","currency":"051","mid":15001038,"tid":15531038,"mtpass":"12345","trxnDetails":"","id":107

我收到此错误:

"jsonrpc":"2.0","id":null,"error":"code":-32600,"message":"Invalid JSON-RPC 2.0 request error (-32600)"

我做错了什么?感谢您的帮助。

【问题讨论】:

这个被发送到什么服务?有些喜欢 [value],有些喜欢 param:value。它肯定接受 JSON-RPC v2.0 吗?服务是否期望身份验证参数位于 JSON-RPC 信封中?否则,我觉得没问题。 它正在发送到支付系统。 Srever 绝对接受 json-rpc 2.0 请求。参数列表是正确的。 32600 错误表示带有无效 JSON-RPC 的过程调用。所以我认为我的语法有问题。 我没有 :-) 规范在这里:jsonrpc.org/specification 您是否发送了一些 看起来 像句法标点符号但实际上不是的 unicode 字符? 我尝试了一些在线 json 验证器,他们都说我的字符串是有效的。 【参考方案1】:

可能是服务使用的 JSON 库。请尝试以下操作:

    在关键字符串的末尾加上空格+冒号和值,“key”:“value”与“key”:“value” 尝试将请求 id 作为字符串,"id": "1" vs "id": 1 我不知道服务的 ist 编码有多好,但如果您的参数格式不正确,它可能会给您-32600 错误,而不是-32602。那么您使用的是哪种货币,不需要小数并以字符串形式发送?什么是“中间”,一个整数?

您的请求对象看起来不错,它认为这是服务所期望的并调用好或坏的请求对象。

【讨论】:

【参考方案2】:

我在使用 json-rpc 网络时遇到了同样的问题。问题是由content-type 标头引起的。默认情况下,我的浏览器将其设置为application/x-www-form-urlencoded,并产生了该错误。将其设置为 application/json 解决了我的问题。

【讨论】:

以上是关于Json RPC 错误 32600的主要内容,如果未能解决你的问题,请参考以下文章

Zend_Json_Server 与 JSON-RPC 规范

Android 错误:使用 android-json-rpc 时出现 NoClassDefFound 错误

Angular JSON-RPC:处理错误

Perl -- 使用 JSON::RPC::Client 时出现“不是 HASH 引用”错误

错误:无效的 JSON RPC 响应:未定义

如果包含西里尔符号,Json RPC 返回错误响应