rails - net http ruby
¿Cuál es la diferencia entre las gemas ''open-uri'' y ''Net: HTTP'' de Ruby? (2)
Acabo de descubrir que open
sigue las redirecciones, mientras que Net::HTTP
no, lo cual es una diferencia importante.
Por ejemplo, open(''http://www.stackoverflow.com'') { |content| puts content.read }
open(''http://www.stackoverflow.com'') { |content| puts content.read }
mostrará el HTML adecuado después de seguir la redirección, mientras que Net::HTTP.get(URI(''http://www.stackoverflow.com''))
mostrará el mensaje de redirección y el código de estado 302.
Parece que ambas gemas realizan tareas muy similares. ¿Puede alguien dar ejemplos de dónde una gema sería más útil que la otra? No tengo un código específico al que me refiero, me pregunto más sobre los casos de uso general para cada gema. Sé que esta es una pregunta corta, llenaré los espacios en blanco a solicitud. Gracias.
La razón por la que parecen realizar tareas similares es que OpenURI es un contenedor para Net :: HTTP, Net :: HTTPS y Net :: FTP.
Por lo general, a menos que sienta que necesita una interfaz de nivel inferior, usar OpenURI es mejor, ya que puede hacerlo con menos código. Usando OpenURI puedes abrir una URL / URI y tratarla como un archivo.
Consulte: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html y http://ruby-doc.org/stdlib-1.9.3//libdoc/net/http/rdoc/Net.html