我一直在寻找一种合适的方法来关闭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
时,文档明确说明了
调用者负责在完成时关闭它(连接)
我不想使用阻止形式。
答案 0 :(得分:7)
关闭连接的方法是http.finish
。
net/http
API特别令人困惑。通常更容易使用更高级别的库,例如HTTParty或REST Client,这将提供更直观的API并为您处理较低级别的详细信息。
答案 1 :(得分:2)
如果给出了可选块,则新创建的Net :: HTTP对象将传递给它,并在块完成时关闭。