2011-12-30 75 views
7

HTTParty的parsed_response方法返回一個哈希,如果您得到一個響應代碼200,否則它將返回一個字符串,無論Web服務器是否返回XML響應。HTTParty parsed_response返回一個字符串而不是散列

HTTParty.get(post_url).parsed_response.class # Depends on response code 

亞馬遜將提供XML(解釋了什麼問題)甚至在403

我缺少的東西?

回答

8

HTTParty根據HTTP響應的標頭Content-Type解析其#parsed_response。驗證該HTTP標頭的值。在你的情況下,你會希望它是application/xml

+1

這讓我webmock/httparty。需要的應用程序/ json內容類型 – Andrew 2014-01-13 18:40:40

+0

@Andrew那麼如何使Webmock正確?我不知道如何獲得解析的JSON。 – Nowaker 2014-11-13 02:51:17

+0

@Nowaker,我不確定你是否對此進行了排序,但webmock錯誤地給了你應該存儲的_exact_代碼。但是,它忽略了包含httparty依賴的響應頭文件來決定如何解析。添加這些,它工作正常。 – xavdid 2015-05-25 09:43:57

4

如果今天有人仍然遇到此問題,get可以採取的形式參數,它可以幫助您確保HTTParty::Response對象是一個Hash:

url = HTTParty.get('http://domain.com', format: :json) # class is a Hash 
相關問題