一个单独的SO帖子提供了不同的方法来获取Ruby中的Web内容,但并没有完全解释为什么一个优于另一个.
使用open()和NET :: http模块(如下所示)获取Web内容有什么区别?为什么NET :: http被认为是“更好”的方法?
**open() 1:** require 'open-uri'file = open('http://hiscore.runescape.com/index_lite.ws?player=zezima')contents = file.read**open() 2:**require 'open-uri'source = open('http://www.Google.com',&:read)**NET::http 1:**require 'uri'require 'net/http'url = "http://hiscore.runescape.com/index_lite.ws?player=zezima"r = Net::http.get_response(URI.parse(url).host,URI.parse(url).path)解决方法 经验法则:尽可能使用
OpenURI
. 原因是OpenURI
只是Net::HTTP
左右的包装器,因此需要编写更少的代码.因此,如果你所做的只是执行简单的GET请求,那么就去做吧.
另一方面,如果你想要一些OpenURI没有给你的低级功能,更喜欢Net::HTTP
.这不是一种更好的方法,但它在配置方面提供了更大的灵活性.
正如official documentation所述:
总结If you are only performing a few GET requests you should try OpenURI.
以上是内存溢出为你收集整理的Ruby:使用open()和NET :: HTTP模块获取Web内容有什么区别?全部内容,希望文章能够帮你解决Ruby:使用open()和NET :: HTTP模块获取Web内容有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)