【问题标题】:Ruby Rest Client sending Escaped JSONRuby Rest 客户端发送转义 JSON
【发布时间】:2015-01-29 22:45:05
【问题描述】:

我正在使用 Sinatra 和 rest-client 发送 JSON 有效负载并对其进行处理(请求需要密钥对签名)。

但是看起来 rest-client 正在发送转义的 JSON。

我的 RestClient 日志:

RestClient.post uriHere, "{\"eventID\":1}", "Accept"=>"application/json", "Accept-Encoding"=>"gzip, deflate", "Authorization"=>"Bearer tokenHere", "Content-Hash"=>"sha1 signatureHere", "Content-Length"=>"xyz", "Content-Type"=>"application/json", "Date"=>"Thu, 29 Jan 2015 22:26:47 GMT"

我无法验证端点是否真的在读取转义字符,但如果它像那样发送它们,显然它不是有效的 JSON。我试过 .gsub 但它没有删除多余的斜线。

想法?

【问题讨论】:

    标签: ruby json rest rest-client


    【解决方案1】:

    我几乎可以肯定它在日志中是这样的,即实际的有效负载是有效的 JSON。

    这意味着它是文本,并且应该通过 JSON.parse 传递:

    new_hash = JSON.parse(the_payload)
    

    那么new_hash['eventID'] 将是1

    【讨论】:

    • 是的,你是对的,我通过一个不需要请求签名的应用程序查看了相同的代码。转义字符的结果相同。
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2017-12-18
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多