未初始化的常量CURL :: URI(NameError)

时间:2015-10-09 11:28:11

标签: ruby curl uri nameerror

我正在使用CURL gem来屏蔽代理服务器的http请求并发送一些请求:

require 'curl'

curl = CURL.new
curl.proxy('114.26.9.171:8888')
curl.get('http://google.com')

但是,当我尝试将代理参数传递给curl实例时,它会抛出以下错误:

gems/curl-0.0.9/lib/curl.rb:64:in `proxy': uninitialized constant CURL::URI (NameError)

出现此错误的原因是什么? 我检查了curl.rb文件,发现所有必需的库都是 需要:

require 'cgi'
require "open3"
require 'fileutils' 
require 'ap' 
require 'digest/md5'
require 'string_cleaner'
require 'open-uri'

...

    def proxy(proxy_uri)
      File.open("/tmp/aaaaaaaa.aaa","w"){|file| file.puts "#{Time.now}---"+proxy_uri}
        proxy = ( proxy_uri.is_a?(URI) ? proxy_uri : URI.parse("http://#{proxy_uri}") )
      @setup_params = "#{@setup_params} --proxy \"#{proxy.host}:#{proxy.port}\" "
        @setup_params = "#{@setup_params} --proxy-user \"#{proxy.user}:#{proxy.password}\" " if proxy.user
    end

这个错误的原因是什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

呀。因此,您在github中查看的[当前]版本与宝石中包含的版本不同。

看看: https://github.com/tg0/curl/blob/5556b052fd4f2970256862b1b17a6d4b1a6ee3ef/lib/curl.rb

基本上它缺少了uri的要求。在要求“卷曲”之前尝试添加它。并看看它是否有效。