Net :: HTTP -> слишком большой уровень стека - PullRequest
1 голос
/ 26 июля 2011

Я получаю сообщение об ошибке «SystemStackError (слишком большой уровень стека)», когда запускаю следующий код внутри контроллера, однако он прекрасно работает внутри терминала ruby!

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, но, конечно, разрабатывать его не очень интересно.

1 Ответ

0 голосов
/ 09 мая 2015

Вы должны попробовать этот код вместо:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...