0

我想用相同的请求获取'a.com/a.html'和'a.com/b.html'的内容我的代码是

uri = URI.parse("http://www.sample.com/sample1.html")  
http = Net::HTTP.new(uri.host, uri.port)  
request = Net::HTTP::Get.new(uri.request_uri)  
# request.initialize_http_header({"User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X     10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36"}) 
result = http.request(request).body

我应该更改请求的路径吗?或任何其他想法?

4

1 回答 1

0

您不能一次获取多个资源,但可以重用 HTTP 连接从同一服务器获取多个资源(一个接一个):

require 'net/http'

Net::HTTP.start('a.com') do |http|
  result_a = http.get('/a.html').body
  result_b = http.get('/b.html').body
end

文档

::start立即创建与 HTTP 服务器的连接,该服务器在块期间保持打开状态。如果服务器指示它支持持久连接,则该连接将对块中的多个请求保持打开状态。

于 2013-08-13T09:00:06.627 回答