Net::http и HTTParty работают локально, но не на Heroku - RoR3
Я работаю над некоторым приложением RoR3, и мне нужно сделать HTTP-запрос к какому-либо серверу.
Я пробовал Ruby Net:: HTTP lib и работает локально, но не на Heroku. Затем я попробовал HTTParty и заставить его работать локально, но он все еще не работает на Heroku. я получил
Нам очень жаль, но что-то пошло не так.
Когда я проверяю логи Heroku, я получаю
500 - внутренняя ошибка сервера
отображается как последний журнал.
Я убедился, что гем 'httparty' указан в нужном месте в гемфайле.
Есть ли учебник о том, как сделать HTTP-запрос от Heroku PaaS?
Спасибо
1 ответ
Амит Суролия был прав. Я также использовал HTTParty, и он работал через Curl и Development, но потерпел крах в работе. Поскольку параметр HTTParty является литеральным URL-адресом (в виде строки), он должен быть безупречным URL/URI (то есть без пробелов). Мой плохой URI был следующим:
HTTParty.get("http://api.blahblahblah.com/v1/Boards/Search?&limit=79&query=#{query}&filter_date_from=1423353600")
Обратите внимание на интерполяцию query=#{query}"
, Так что если query='Michelle Obama'
, обратите внимание на пространство между Michelle
а также Obama
, Из-за интерполяции HTTParty.get('string')
это неверно.
РЕШЕНИЕ:
Замените все пробелы в вашей строке на +
или вы могли бы использовать %20
,
я использовал query.gsub!(' ', '+')
Для получения дополнительной информации о пробелах в URL, проверьте это здесь: Пробелы в URL?