我无法弄清楚为什么在以下代码行中
res = https.get(url, nil)
应用程序停止并给我以下例外:
undefined method `keys' for nil:NilClass
奇怪的是,这个错误只发生在我的开发环境中,当我把应用程序放到网上(heroku)时,每件事都像魅力一样。
上面的代码行使用此包含:
require 'net/https'
有人能解释我为什么吗? TNX
答案 0 :(得分:6)
如果您不想传递任何标题,请使用:
res = https.get(url, {})
答案 1 :(得分:1)
Net::HTTP
def get(path, initheader = {}, dest = nil, &block) # :yield: +body_segment+
res = nil
if HAVE_ZLIB
unless initheader.keys.any?{|k| k.downcase == "accept-encoding"}
initheader["accept-encoding"] = "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
@compression = true
....
此方法定义中的是
initheader
代码nil
中的为initheader.keys
,因此第4行发生错误if HAVE_ZLIB
它可能在heroku上运行正常,因为faulse
可以是{{1}}所以代码被跳过了。