HTTParty parsed_response возвращает строку вместо хэша - PullRequest
7 голосов
/ 30 декабря 2011

Метод HTTParty parsed_response возвращает хэш, если вы получите код ответа 200, но в противном случае он вернет строку, независимо от того, вернет ли веб-сервер ответ XML.

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

Amazon предоставит XML (объясняя, что пошло не так) даже на 403.

Я что-то упустил?

Ответы [ 2 ]

8 голосов
/ 12 апреля 2013

HTTParty анализирует #parsed_response на основе заголовка HTTP-ответа Content-Type. Проверьте значение этого HTTP-заголовка. В вашем случае вы бы хотели, чтобы оно было application/xml.

4 голосов
/ 17 ноября 2016

В случае, если кто-то все еще сталкивается с этой проблемой сегодня, get может принять параметр формата, который поможет вам гарантировать, что ваш HTTParty::Response объект является Хешем:

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