2015-06-08 3 views
0

У меня есть приложение для рельсов, которое уже два года работает на героку без проблем. И у меня есть следующий код ruby ​​в файле рейка.Приложение Ruby выходит из строя в запросе https на heroku.com

require 'open-uri' 
require 'json' 

namespace :myapp do 
    task :load_remote_data, [:user_id] => :environment do |t, args| 
     events_url = "https://myapp.com/events" 
     #returns json 
     puts "Event url #{events_url}" 
     #this gets printed ok 
     result = JSON.parse(open(events_url).read) 
     #open fails 
     puts "Server result #{result}" 
end 

тзд Ошибка из Heroku консоли:

rake aborted! 
SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A 
/app/lib/tasks/load_remote_data.rake:13:in `block (2 levels) in <top (required)>' 

Вроде бы какая-то проблема с запросом по протоколу HTTPS. Это рубин версия я бегу на Heroku

heroku run ruby --version 
Running `ruby --version` attached to terminal... up, run.2192 
ruby 1.9.2p330 (2014-08-07 revision 47094) [x86_64-linux] 

Любые идеи, что изменить для этого, чтобы иметь возможность снова делать запросы HTTPS.

ответ

1

Похоже, что ваш конфигуратор приложений не похож на версию SSL, используемую вашим приложением. Возможно, вам необходимо убедиться, что open-uri отправляет правильную версию SSL-подтверждения, возможно, TLSv1.

Я лично не знаю, как использовать open-uri, но, возможно, вы могли бы использовать RestClient вместо этого.

Смежные вопросы