我正在使用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
这个错误的原因是什么以及如何解决?
答案 0 :(得分:0)
呀。因此,您在github中查看的[当前]版本与宝石中包含的版本不同。
看看: https://github.com/tg0/curl/blob/5556b052fd4f2970256862b1b17a6d4b1a6ee3ef/lib/curl.rb
基本上它缺少了uri的要求。在要求“卷曲”之前尝试添加它。并看看它是否有效。