2012-02-29 1 views
1

Я использую API, который возвращает неправильный тип mime, он выходит как text/html, а не application/json.HTTParty возвращает строку

Некоторые из ответов - application/json, поэтому я знаю, что проблема связана с типом mime.

Но для текста/html (который возвращает действительный json с неправильным типом mime) httparty будет анализировать его только в строке, а не в хеше.

Есть ли способ разобрать эту строку в хэш?

Я пробовал использовать require 'json', но с использованием JSON.parse появляется неожиданная ошибка ключа.

+0

У вас есть пример кода, или, по крайней мере, API URL? –

ответ

3

Если вы расширяете класс с HTTParty попробуйте добавить

format :json

к классу

также убедитесь, что вы разбираете тело ответа, а не ответ объект.

JSON.parse (получить (self.class.get ("some_url", "some_params"). Тела)

1

Без кода или URL-адреса API Я могу только догадываться. Возможно, API может реагировать несколькими способами, и вам нужен соответствующий заголовок Accept.

class Foo 
    include HTTParty 
    headers 'Accept' => 'application/json' 
end 
+0

было бы возможно HTTParty принять 'text/html' как действительный json? –