无法让 Curl URL 在 Ruby 模块方法中工作
Can't get Curl URL to work inside a Ruby Module Method
我遇到一个问题,我无法使用以下任何方法(1、2 和 3)。
require "curb"
@username = 'user'
@api_key = 'key'
@base_uri = 'https://url.com'
@offer_id = 999
@login_method = "login=#{@username}&api_key=#{@api_key}"
@method_3_url ="#{@base_uri}/3/?#{@login_method}"
module My_script
def self.call_method(url)
Curl::Easy.http_get(url){|curl| curl.follow_location = true; curl.max_redirects=10;}
end
def self.method1
call_method("#{@base_uri}/1/#{@login_method}")
end
def self.method2
call_method("#{@base_uri}/2/?#{@login_method}")
end
def self.method3
call_method("#{@base_uri}/3/?#{@login_method}")
end
end
我收到以下错误:
Curl::Err::MalformedURLError: URL using bad/illegal format or missing
URL from
/Users/home/.rvm/gems/ruby-2.0.0-p598/gems/curb-0.8.8/lib/curl/easy.rb:72:in
`perform'
当我 运行 call_method(@method_3_url) 它似乎工作正常。
我也可以把原来的 POST URL 粘贴到 Chrome 就可以了..
我花了几个小时在网上寻找解决方案,但我似乎无法让它工作。我在使用 HTTParty 时也遇到了类似的错误。请帮助:-)
您的实例变量不在模块中,因此超出范围。
而不是:
@foo = 'bar'
module Foo
...
end
您正在寻找:
module Foo
@foo = 'bar'
...
end
我遇到一个问题,我无法使用以下任何方法(1、2 和 3)。
require "curb"
@username = 'user'
@api_key = 'key'
@base_uri = 'https://url.com'
@offer_id = 999
@login_method = "login=#{@username}&api_key=#{@api_key}"
@method_3_url ="#{@base_uri}/3/?#{@login_method}"
module My_script
def self.call_method(url)
Curl::Easy.http_get(url){|curl| curl.follow_location = true; curl.max_redirects=10;}
end
def self.method1
call_method("#{@base_uri}/1/#{@login_method}")
end
def self.method2
call_method("#{@base_uri}/2/?#{@login_method}")
end
def self.method3
call_method("#{@base_uri}/3/?#{@login_method}")
end
end
我收到以下错误:
Curl::Err::MalformedURLError: URL using bad/illegal format or missing URL from /Users/home/.rvm/gems/ruby-2.0.0-p598/gems/curb-0.8.8/lib/curl/easy.rb:72:in `perform'
当我 运行 call_method(@method_3_url) 它似乎工作正常。
我也可以把原来的 POST URL 粘贴到 Chrome 就可以了..
我花了几个小时在网上寻找解决方案,但我似乎无法让它工作。我在使用 HTTParty 时也遇到了类似的错误。请帮助:-)
您的实例变量不在模块中,因此超出范围。
而不是:
@foo = 'bar'
module Foo
...
end
您正在寻找:
module Foo
@foo = 'bar'
...
end