Net :: HTTP获取源代码和状态

我目前正在使用以下命令获取页面的源代码:

Net::HTTP.get(URI.parse(page.url)) 

我还想获得HTTP状态,而不需要再发出第二个请求。

有没有办法用另一种方法做到这一点? 我一直在看文档,但似乎无法找到我要找的东西。

在我看来,除非你需要一些真正的低级访问或控制,否则你最好使用Ruby的内置Open::URI模块:

 require 'open-uri' io = open('http://www.example.org/') #=> # body = io.read[0, 50] #=> " ["200", "OK"] io.base_uri #=> # 

请注意, base_uri的输出与我传入的URL不同.Open :: URI跟随重定向,Net :: HTTP不会这样做。 如果您在代码中丢弃大量随机URL并且不想编写重定向处理程序,那么可以节省大量时间。

对不起,实际上想通了:)。

 ruby-1.9.2-p136 :004 > r = Net::HTTP.get_response(URI.parse('http://badurlexample.com')) => # ruby-1.9.2-p136 :005 > r.inspect => "#" ruby-1.9.2-p136 :006 > r.body => "1 Errors:\r\nLine: 40 - ; expected" ruby-1.9.2-p136 :007 >