4

我一直在寻找关闭 HTTP 连接的正确方法,但还没有找到任何东西。

require 'net/http'
require 'uri'

uri = URI.parse("http://www.google.com")

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new("/")


http.start
resp = http.request request

p resp.body

到目前为止一切顺利,但现在当我尝试关闭连接时猜测使用哪种方法:

http.shutdown   # error
http.close      # error

当我检查时ri Net::HTTP.start,文档明确说明

调用者负责在完成后关闭它(连接)

我不想使用块形式。

4

2 回答 2

9

关闭连接的方法是http.finish

API使用net/http起来特别混乱。使用更高级别的库通常更容易,例如HTTPartyREST Client,它们将提供更直观的 API 并为您处理较低级别的细节。

于 2012-11-10T16:32:04.363 回答
2

如果给出了可选块,则将新创建的 Net::HTTP 对象传递给它并在块完成时关闭。

来自 ruby​​-doc.org

于 2012-11-10T16:29:23.267 回答