仅获取em_http_request中的响应标头

时间:2014-10-24 15:22:01

标签: ruby eventmachine em-http-request

如何在em_http_request中仅获取响应标头?

我尝试使用此代码:

EventMachine.run do
  http = EventMachine::HttpRequest.new('my_url').get
  http.headers do |headers|
    Fiber.current.resume headers
  end
end

但我不想收到整个身体。如何阻止请求的执行? http.close不起作用。

UPD
http.instance_variable_get(:'@conn').close帮助我,但可能你知道更有趣的解决方案

1 个答案:

答案 0 :(得分:1)

如果你不想要身体,you should do a HEAD request instead of a GET。要终止事件循环,您需要显式调用EventMachine.stop

EventMachine.run do
  http = EventMachine::HttpRequest.new('my_url').head
  http.headers do |headers|
    # do something with headers

    EventMachine.stop
  end
end