【问题标题】:Faraday::ParsingError - 757: unexpected tokenFaraday::ParsingError - 757: 意外令牌
【发布时间】:2014-10-10 17:09:50
【问题描述】:

我正在编写一个 API Wrapper,但遇到了一个我不确定如何解决的问题。

这是法拉第设置:

@connection = Faraday.new(url: @api_url, params: params,
                                headers: default_headers,
                                ssl: { verify: true } ) do |faraday|
                                  faraday.use FaradayMiddleware::Mashify
                                  faraday.use FaradayMiddleware::ParseJson, content_type: /\bjson$/
                                  faraday.use FaradayMiddleware::FollowRedirects
                                  faraday.adapter Faraday.default_adapter
                                end

这适用于我正在进行的 95% 的 API 调用 - 它解析 JSON 就像我需要它和 Mashify 一样。太好了。

问题在于 API 返回的 JSON 值未包含在 JSON 对象中。 API 调用是这样的:

https://hacker-news.firebaseio.com/v0/maxitem.json

我可以看到这不是 jsonlint 中的有效 JSON 对象(下面的屏幕截图)。

我需要单独为这个调用重新配置一个新的 Faraday 实例吗?这似乎有点多余,但它显然在 FaradayMiddleware::ParseJson 类上爆炸了。

我的 RSpec 测试返回:

Failure/Error: latest = client.max_item
     Faraday::ParsingError:
       757: unexpected token at '8438316'

感谢任何帮助。

【问题讨论】:

    标签: ruby json faraday


    【解决方案1】:

    根据to the JSON grammar,裸数字不是 JSON,它只是一个数字。所以是的,看起来他们的 API 有点不一致,您需要为该方法进行不同的配置。

    【讨论】:

    • 感谢尼克确认我的怀疑。
    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 2016-12-12
    • 1970-01-01
    • 2020-03-29
    • 2019-08-06
    • 2014-11-29
    • 2018-11-19
    • 2017-04-17
    相关资源
    最近更新 更多