【发布时间】:2012-02-23 07:33:46
【问题描述】:
我正在使用 em-http,但我无法在代理后面获得 HTTPS(SSL) 连接。这是我的代码。
require 'eventmachine'
require 'em-http'
url = "https://twitter.com/"
opts = {
:proxy => { :host => 'my.proxy', :port => 8080 }
}
EventMachine.run do
http = EventMachine::HttpRequest.new(url, opts).get
http.callback {
puts http.response
EventMachine.stop
}
end
这段代码可以正常工作,但它什么也不做,也不会退出 eventmachine 主循环。
当我在以下条件下尝试时,我的应用可以连接到目标。
- 外部代理/通过 HTTPS
- 在代理后面/通过 HTTP
我也可以在代理后面使用 curl 获得响应。
curl "https://twitter.com/"
我的代码有什么问题?
【问题讨论】:
-
您可以考虑为 get 请求添加超时,这样至少应用程序不会永远挂起。将您的行更改为 http = EventMachine::HttpRequest.new(url, opts).get, :timeout => 15
标签: ruby eventmachine