HTTParty parsed_response返回一个字符串而不是散列
问题描述:
HTTParty的parsed_response
方法返回一个哈希,如果您得到一个响应代码200,否则它将返回一个字符串,无论Web服务器是否返回XML响应。HTTParty parsed_response返回一个字符串而不是散列
HTTParty.get(post_url).parsed_response.class # Depends on response code
亚马逊将提供XML(解释了什么问题)甚至在403
我缺少的东西?
答
HTTParty根据HTTP响应的标头Content-Type
解析其#parsed_response
。验证该HTTP标头的值。在你的情况下,你会希望它是application/xml
。
答
如果今天有人仍然遇到此问题,get
可以采取的形式参数,它可以帮助您确保HTTParty::Response
对象是一个Hash:
url = HTTParty.get('http://domain.com', format: :json) # class is a Hash
这让我webmock/httparty。需要的应用程序/ json内容类型 – Andrew 2014-01-13 18:40:40
@Andrew那么如何使Webmock正确?我不知道如何获得解析的JSON。 – Nowaker 2014-11-13 02:51:17
@Nowaker,我不确定你是否对此进行了排序,但webmock错误地给了你应该存储的_exact_代码。但是,它忽略了包含httparty依赖的响应头文件来决定如何解析。添加这些,它工作正常。 – xavdid 2015-05-25 09:43:57