Me gustaría tomar información de otro sitio web. Por lo tanto (tal vez) debería hacer una solicitud a ese sitio web (en mi caso, una solicitud HTTP GET) y recibir la respuesta.
¿Cómo puedo hacer esto en Ruby on Rails?
Si es posible, ¿es un enfoque correcto para usar en mis controladores?
ruby
ruby-on-rails-3
http
request
usuario502052
fuente
fuente
Net :: HTTP está integrado en Ruby, pero seamos sinceros, a menudo es más fácil no usar su engorroso estilo de los años ochenta y probar una alternativa de nivel superior:
fuente
Net::HTTP
es engorroso, pero la compensación no vale la pena.OpenURI es el mejor; es tan simple como
fuente
open-uri
eso no seguirá a las redirecciones.file:///etc/passwd
fuente
Prefiero httpclient sobre Net :: HTTP.
HTTParty es una buena opción si está haciendo una clase que es un cliente para un servicio. Es un mixin conveniente que le brinda el 90% de lo que necesita. Vea cuán cortos son los clientes de Google y Twitter en los ejemplos .
Y para responder a su segunda pregunta: no, no pondría esta funcionalidad en un controlador; en su lugar, usaría un modelo para encapsular los detalles (quizás usando HTTParty) y simplemente llamarlo desde el controlador.
fuente
Mis favoritos dos maneras para captar el contenido de URL son bien OpenURI o Typhoeus .
OpenURI porque está en todas partes, y Typhoeus porque es muy flexible y potente.
fuente
Aquí está el código que funciona si está realizando una llamada API REST detrás de un proxy:
fuente