【问题标题】:Json RPC error 32600Json RPC 错误 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 验证器,他们都说我的字符串是有效的。

标签: json json-rpc


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      相关资源
      最近更新 更多