2011-07-26 9 views
1

コントローラ内で次のコードを実行すると 'SystemStackError(スタックレベルが深すぎます)'というエラーが表示されますが、Rubyターミナル内で完全に正常に動作します。Net :: HTTP - >スタックレベルが深すぎる

require 'net/http' 
require 'net/https' 
http = Net::HTTP.new('my.site.com', 443) 
http.use_ssl = true 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE  
resp, data = http.get('/something?info=XX') 

私が問題の原因となる最後の行を解明できる限り、以前誰かがこの問題に遭遇したことを願っています!私はWindowsマシン上で、それは関連している場合。

更新:ペーストされたコードは私たちのfedoraサーバー上で動作しますが、そうした方法を開発することは確かに楽しいことではありません。

答えて

0

あなたは代わりにこのコードを試してみてください:

require 'uri' 
require 'net/https' 
url = URI("https://foo.bar.com") 
req = Net::HTTP::Get.new(url.to_s) 
res = Net::HTTP.start(url.hostname, url.port, :use_ssl => true , :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| 
    http.request(req) 
end 
case res 
    when Net::HTTPSuccess, Net::HTTPRedirection 
     response = Rack::Utils.parse_nested_query URI.decode(res.body) 
     puts response.to_json 
    else 
     puts 'OH NO!' 
     puts res.to_json 
    end 
関連する問題