使用tor作为代理时,em-http请求意外结果

时间:2012-12-31 08:12:06

标签: ruby eventmachine tor em-http-request

我已经创造了一个能够准确显示发生了什么的要点 https://gist.github.com/4418148
我测试了一个使用ruby的'net / http'库和'socksify / http'的版本,它运行得很完美但是如果EventMachine版本返回意外的结果。
Tor浏览器中的响应是正确的,但使用EventMachine不是!

它返回一个响应,但是当你通过浏览器发送请求时,它与返回的响应不同,无论有没有代理,都是net / http。

为方便起见,我也会将其粘贴在此处。

require 'em-http-request'

DEL = '-'*40
@results = 0

def run_with_proxy
  connection_opts = {:proxy => {:host => '127.0.0.1', :port => 9050, :type => :socks5}}
  conn = EM::HttpRequest.new("http://www.apolista.de/tegernsee/kloster-apotheke",       connection_opts)
  http = conn.get
  http.callback {
    if http.response.include? "Oops"
      puts "#{DEL}failed with proxy#{DEL}", http.response
    else
      puts "#{DEL}success with proxy#{DEL}", http.response
    end
    @results+=1
    EM.stop_event_loop if @results == 2
  }
end

def run_without_proxy
  conn = EM::HttpRequest.new("http://www.apolista.de/tegernsee/kloster-apotheke")
  http = conn.get
  http.callback {
    if http.response.include? "Oops"
      puts "#{DEL}failed without proxy#{DEL}", http.response
    else
      puts "#{DEL}success without proxy#{DEL}", http.response
    end
    @results+=1
    EM.stop_event_loop if @results == 2
  }
end

EM.run do
  run_with_proxy
  run_without_proxy
end

感谢任何澄清。

0 个答案:

没有答案