【问题标题】:Check HTTP Status Code in Rails在 Rails 中检查 HTTP 状态码
【发布时间】:2011-09-19 20:19:22
【问题描述】:

有没有一种简单的方法可以在 Ruby on Rails 中检查另一个网站的状态代码(例如 http://google.com)?

理想情况下,要检查的 URL 列表将从数据库中提取并通过 CRON(或等效项)进行处理。

【问题讨论】:

    标签: html ruby-on-rails ruby http-status-codes


    【解决方案1】:
    require 'net/http'
    
    http = Net::HTTP.new('www.google.com',80)
    response = http.request_get('/')
    p response.status
    

    效率稍高(交通方面)可能是:

    response = http.request_head('/')
    p response.status
    

    来源:http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html#M001403

    【讨论】:

    • 谢谢!将其自动化的最佳位置在哪里(例如通过 CRON)?它是否属于自己的 Ruby 文件?
    • 如果它正在使用数据库,并且 activerecord 有意义,您可以将它放在 rails 项目和将所有内容加载到 /script 文件中的存根中。让存根使用 require 加载您的工作人员并开始运行。我通常放入 app/workers/someworker 的文件。我通过 crontab -e 从 cron setup 调用来启动这种类型的东西。
    • 不是response.status而是response.code,见ruby-doc.org/stdlib-1.8.7/libdoc/net/http/rdoc/Net/…
    【解决方案2】:

    您可以通过调用访问请求环境:

    def index
      @req = (request.env).inspect 
    end
    
    # index.html.erb
    <%= @req %>
    

    【讨论】:

    • 问题是关于检查外部网站的响应代码而不是获取本地请求的环境
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    相关资源
    最近更新 更多