HTTParty的parsed_response
方法返回一個哈希,如果您得到一個響應代碼200,否則它將返回一個字符串,無論Web服務器是否返回XML響應。HTTParty parsed_response返回一個字符串而不是散列
HTTParty.get(post_url).parsed_response.class # Depends on response code
亞馬遜將提供XML(解釋了什麼問題)甚至在403
我缺少的東西?
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