[英]What is the difference between Ruby's 'open-uri' and 'Net:HTTP' gems?
看起来这两个宝石都执行非常相似的任务。 任何人都可以举例说明一个宝石比另一宝石更有用吗? 我没有具体的代码,我更想知道每个gem的一般用例。 我知道这是一个简短的问题,我会根据要求填写空白。 谢谢。
他们看起来像执行类似任务的原因是OpenURI是Net :: HTTP,Net :: HTTPS和Net :: FTP的包装器。
通常,除非您觉得需要较低级别的界面,否则使用OpenURI会更好,因为您可以使用更少的代码。 使用OpenURI,您可以打开URL / URI并将其视为文件。
见: http : //www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html和http://ruby-doc.org/stdlib-1.9.3//libdoc /net/http/rdoc/Net.html
我刚刚发现open
确实遵循重定向,而Net::HTTP
则没有,这是一个重要的区别。
例如, open('http://www.stackoverflow.com') { |content| puts content.read }
open('http://www.stackoverflow.com') { |content| puts content.read }
将在重定向后显示正确的HTML,而Net::HTTP.get(URI('http://www.stackoverflow.com'))
将显示重定向消息和302状态代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.