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?

Другие вопросы по тегам