我希望使用相同的请求获取'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
我应该更改请求的路径吗?还是其他任何想法?
答案 0 :(得分: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
来自docs:
::start
立即创建与HTTP服务器的连接,该服务器在块的持续时间内保持打开状态。如果服务器指示它支持持久连接,则连接将对块中的多个请求保持打开状态。