24

看起来这两个 gem 执行的任务非常相似。谁能举例说明一种宝石比另一种更有用的地方?我没有我所指的特定代码,我更想知道每个 gem 的一般用例。我知道这是一个简短的问题,我会根据要求填写空白。谢谢。

4

2 回答 2

24

它们看起来执行类似任务的原因是 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

于 2013-05-26T22:32:18.703 回答
6

我刚刚发现open确实遵循重定向,而没有遵循重定向,Net::HTTP这是一个重要的区别。

例如,open('http://www.stackoverflow.com') { |content| puts content.read }重定向后会显示正确的 HTML,同时Net::HTTP.get(URI('http://www.stackoverflow.com'))会显示重定向消息和 302 状态码。

于 2015-08-18T14:53:57.733 回答