Я хотел бы взять информацию с другого сайта. Поэтому (возможно) я должен сделать запрос на этот сайт (в моем случае запрос HTTP GET) и получить ответ.
Как я могу сделать это в Ruby on Rails?
Если это возможно, это правильный подход для использования в моих контроллерах?
ruby
ruby-on-rails-3
http
request
user502052
источник
источник
Net :: HTTP встроен в Ruby, но давайте посмотрим правде в глаза, часто проще не использовать его громоздкий стиль 1980-х годов и попробовать альтернативу более высокого уровня:
источник
Net::HTTP
громоздко, но компромисс не стоит.OpenURI - лучший; это так же просто, как
источник
open-uri
не будет следовать перенаправлениям.file:///etc/passwd
источник
Я предпочитаю httpclient вместо Net :: HTTP.
HTTParty - хороший выбор, если вы создаете класс, который является клиентом для службы. Это удобный миксин, который дает вам 90% того, что вам нужно. Посмотрите, как коротки клиенты Google и Twitter в примерах .
И чтобы ответить на ваш второй вопрос: нет, я бы не включил эту функциональность в контроллер - вместо этого я бы использовал модель, если это возможно, для инкапсуляции деталей (возможно, с использованием HTTParty) и просто вызывал бы ее из контроллера.
источник
Мои любимые два способа получить содержимое URL-адресов - OpenURI или Typhoeus .
OpenURI, потому что он везде, и Typhoeus, потому что он очень гибкий и мощный.
источник
Вот код, который работает, если вы делаете вызов REST API через прокси:
источник