Ruby的open-uri open方法正常工作

时间:2012-05-24 22:53:23

标签: ruby scripting proxy

这是一个奇怪的情况,希望你能帮我一个理由:

require "open-uri"

class TraceParser
  def starttorip
    url = 'http://yahoo.com'
    proxy_addr = 'http://my proxy server:'
    proxy_port = 1010
    begin
      open(url, :proxy => (proxy_addr + proxy_port.to_s)) do |source|
        source.each_line do |x|
          puts x
        end
      end
    end
  end
  varb = TraceParser.new
  varb.starttorip
end

上面的代码就像一个魅力,一切都很美好。但是,当我将代理定义更改为这样的内容时:

require "open-uri"
class TraceParser
  def starttorip
    url = 'http://yahoo.com'
    begin
      open (url, :proxy => 'http://my proxy server:1010') do |source|
        source.each_line do |x|
          puts x
        end
      end
    end
  end
  varb = TraceParser.new
  varb.starttorip
end

一切都松了:

/tracerparser.rb:6: syntax error, unexpected ',', expecting ')' (SyntaxError)
      open (url, :proxy => "my proxy server...

据我所知,第一个是将代理defn分成两个字符串并附加到open gem。感谢您分享您的意见。

1 个答案:

答案 0 :(得分:1)

问题是open之后的空格,它与代理地图条目无关。