2017-06-27 3 views
0

Ich verwende eine API, die gut auf die Entwicklung funktioniert, aber Timeouts, wenn ich es aus der Produktion oder Heroku Run Rails-Konsole aufrufen.API-Aufruf funktioniert auf Entwicklung, Timeout auf Produktion heroku

ich folgendes tun

url = "http://theapi.example.com" 
response = RestClient.get url 

Lokal bekomme ich eine 200-Antwort, in proudction ich folgendes:

RestClient :: Ausnahmen :: Opentimeout: Timed out Anschluss an Server von /app/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.1/lib/restclient/request.rb:731:in rescue in transmit' from /app/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.1/lib/restclient/request.rb:647:in Sende‘von /app/Verkäufer/Bündel /ruby/2.3. 0/gems/rest-client-2.0.1/lib/restclient/request.rb: 145: in execute' from /app/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0.1/lib/restclient/request.rb:52:in ausführen 'von /app/vendor/bundle/ruby/2.3.0/gems/rest-client-2.0. 1/lib/restclient.rb: 67: in get' from (irb):30 from /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in start 'von /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.6/lib/rails/commands/console.rb:9: in start' from /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in Konsole 'von /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in run_command!' from /app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.6/lib/rails/commands.rb:17:in ' von Skript/Schienen: 6 : in require' from script/rails:6:in '

Die API unterstützt ssl nicht, nicht sicher, dass es etwas zu tun hat es.

+0

https://devcenter.heroku.com/articles/request-timeout#timeout-behavior –

+0

Dank @Bharatsoni, aber das ist nicht das Problem, das ich habe, es ist etwas mit der Produktion zu tun. Die API ist zugänglich, nicht überladen und sie gibt 200 unter einer Sekunde in der Entwicklung zurück. – marimaf

Antwort

0

Der API-Anbieter hat die IP von Heroku blockiert, um Angriffe zu vermeiden. Er entsperrt die IP der Anfrage und alles hat funktioniert.

Verwandte Themen