首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Faraday::ParsingError - 757:意外令牌

Faraday::ParsingError - 757:意外令牌
EN

Stack Overflow用户
提问于 2014-10-10 17:09:50
回答 1查看 2.3K关注 0票数 0

我正在编写一个API包装器,遇到了一个我不太确定如何解决的问题。

这是法拉第的设置:

代码语言:javascript
复制
@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测试返回以下内容:

代码语言:javascript
复制
Failure/Error: latest = client.max_item
     Faraday::ParsingError:
       757: unexpected token at '8438316'

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 17:13:35

根据到JSON语法,一个简单的数字不是JSON,它只是一个数字。因此,是的,看起来他们的API有点不一致,您需要对该方法进行不同的配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26304605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档