Ruby HTTPClient:如何使用持久连接?

Hen*_*hiu 5 ruby http httpclient

如何使用HTTPClient持久的HTTP连接?是否只是在发送HTTP请求时设置Keep Alive?文档声明支持持久连接,但不告诉我们如何使用它们.

toc*_*och 7

可以在Net :: HTTP中使用

正如文档中所写,

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

这意味着您在块中执行的所有请求都将使用相同的HTTP连接.

来自doc的例子

require 'net/http'

uri = URI('http://google.com/')

Net::HTTP.start(uri.host, uri.port) do |http|
  request = Net::HTTP::Get.new uri.request_uri

  response = http.request request # Net::HTTPResponse object
end
Run Code Online (Sandbox Code Playgroud)


fme*_*dez 5

正如HttpClient 自述文件中所述:

你不必关心HTTP/1.1持久连接(httpclient关心而不是你)

这通常意味着在服务器支持HTTP 1.1持久连接的场景中,httpclient gem将为后续请求存储和重用它们(连接).在这种情况下,您不必担心它.

  • 谢谢,我想我会批准这个作为答案......这可能是一个愚蠢的问题,但是如果我重用httpclient实例,httpclient只重用连接吗? (3认同)