如果没有可用的Internet,如何在开发模式下挽救RestClient API调用?

时间:2018-05-20 15:41:36

标签: ruby rest api rest-client

在我的Rails应用程序中,我正在进行各种API调用:

class SearchFacebook

  FALLBACK_STARS = 5.0

  def self.call
    begin
      url = "https://graph.facebook.com/v2.12/#{FACEBOOK_PAGE_ID}"
      response = RestClient.get(url, :params => {:access_token => FACEBOOK_ACCESS_TOKEN, :fields => "overall_star_rating"})
      json = JSON.parse(response)
      stars = json["overall_star_rating"]
    rescue RestClient::ExceptionWithResponse => error
      stars = FALLBACK_STARS
    end
    {:stars => stars}
  end

end

问题是我在很多时候在我的本地环境中运行我的应用程序。如果没有可用的互联网连接(这对我来说很重要,不要问为什么),我收到以下错误:

  

SocketError 即可。   无法打开到api.facebook.com:443的TCP连接(getaddrinfo:   提供了nodename或servname,或者未知)

如何从离线中解救?

我已经检查了RestClient documentation,但无济于事。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我通过简单地从SocketError

中解救来解决这个问题
rescue SocketError, RestClient::ExceptionWithResponse => error

我发现this answer非常有用。