如何在Ruby中正确关闭HTTP连接

时间:2012-11-10 16:22:17

标签: ruby http

我一直在寻找一种合适的方法来关闭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时,文档明确说明了

  

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

我不想使用阻止形式。

2 个答案:

答案 0 :(得分:7)

关闭连接的方法是http.finish

net/http API特别令人困惑。通常更容易使用更高级别的库,例如HTTPartyREST Client,这将提供更直观的API并为您处理较低级别的详细信息。

答案 1 :(得分:2)

  

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

from ruby-doc.org