我正在使用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主循环中退出。
当我在下面的条件下尝试时,我的应用可以连接到目标。
我也可以使用代理后面的curl获得响应。
curl "https://twitter.com/"
我的代码出了什么问题?
答案 0 :(得分:1)
我今天遇到了同样的问题,我无法获得代理ssl请求与我的http代理一起工作,但我能够使用socks5代理:
:proxy => { :host => 'my.proxy', :port => 8080, :type => :socks5 }
答案 1 :(得分:1)
更改通话:
http = EventMachine::HttpRequest.new(url).get opts
答案 2 :(得分:0)
指定errback
。然后,您的代码将退出事件循环,并打印代理请求可能遇到的任何问题:
http.errback {
p http.response_header.status
p http.response_header
p http.response
EventMachine.stop
}