0

如何在 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对我有帮助,但您可能知道更有趣的解决方案

4

1 回答 1

1

如果你不想要身体,你应该做一个HEAD请求而不是一个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
于 2014-10-24T15:35:25.533 回答