田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

rubyでURL先が本当に存在するか確認する方法

DESIGN HUNTER

連続投稿です。
URLが本当に存在するか確認するプログラムを実装してみました。

早速プログラムです。
リダイレクトにも対応しているので結構使えると思います。
また無限ループも回避しています。

require 'net/http'

def url_request(url, limit = 10)
  if limit == 0
    return false
  end
  begin
    response = Net::HTTP.get_response(URI.parse(url))
  rescue
    return false
  else
    case response
    when Net::HTTPSuccess
      return true
    when Net::HTTPRedirection
      url_request(response['location'], limit - 1)
    else
      return false
    end
  end
end

url_request("http://piko.hateblo.jp")