5

如何将持久 HTTP 连接与 HTTPClient 一起使用?发送 HTTP 请求时是否只是设置 Keep Alive 的问题?文档说明支持持久连接,但没有告诉我们如何使用它们。

4

2 回答 2

8

在 Net::HTTP 中可用

正如文档中所写,

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

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

文档中的示例

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
于 2013-04-12T17:04:57.713 回答
5

如 HttpClient自述文件中所述:

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

这通常意味着在服务器支持HTTP 1.1持久连接的情况下,httpclient gem将存储并重新使用它们(连接)以用于后续请求。在这种情况下,您不必担心。

于 2013-04-12T17:08:02.063 回答