ruby - 当没有网络可用时,如何在开发模式下救援 RestClient API 调用?

标签 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. Failed to open TCP connection to api.facebook.com:443 (getaddrinfo: nodename nor servname provided, or not known)

如何避免离线

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

最佳答案

您可以使用毯子rescue => e并使用byebug来检查引发的异常吗?如果在开发环境中,您可以挽救该错误。

这里提到了一些其他选项 Check if Internet Connection Exists with Ruby?

关于ruby - 当没有网络可用时,如何在开发模式下救援 RestClient API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436551/

相关文章:

python - FastApi 获取请求显示验证错误

jquery - 用于下载和解析网页的语言/库?

ruby-on-rails - Rails 5,Rolify - 从用户中删除角色

ruby - 从 require 获取数据库配置

c++ - 无法使用 Reddit API 通过仅应用程序 OAuth 检索访问 token

java - 从 Django 调用 Java API

ruby - 设置未初始化的实例变量

javascript - 将用户名+加密密码发送到 RESTful 服务

java - 使用 REST 和 HttpClient 访问 Facebook API

java - 为什么在 REST API 中为应用程序(android 端)使用身份验证 token 而不是 session_id