Script-Tip: URL auf Existenz prüfen

In unserem heutigen Script-Tip wollen wir euch zeigen wie die Existenz einer URL geprüft werden kann. Dazu wird der Response-Code der angefragten Seite validiert und ein entsprechender boolischer Wert zurückgegeben.

Eine Beispielimplementierung könnte folgendermaßen aussehen:
[ruby]
require ‚open-uri‘
require ’net/http‘

def existiert_url?(url)
url = URI.parse(url)
begin
Net::HTTP.start(url.host, url.port) do |http|
# An dieser Stelle kann bei Bedarf auch auf
# andere Response-Codes geprüft werden
return http.head(url.request_uri).code == "200"
end
rescue SocketError => se
# Fehlerbehandlung, wenn die Domain nicht existiert
# Je nach Applikation kann hier die entsprechende Aktion durchgeführt werden
rescue
# Alle anderen Fehlerfälle werden/können hier behandelt werden
end
end
[/ruby]

 

Danach kann die Existenz einer URL geprüft werden:

[ruby]
existiert_url? "http://www.rubyonrails.de/"
# => true: Die Startseite existiert
existiert_url? "http://www.rubyonrails.de/tag/rails-3/"
# => true: Es gibt eine Unterseite mit Artikeln/Tags zu Rails 3
existiert_url? "http://www.rubyonrails.de/GIBT-ES-NICHT"
# => false: Diese Unterseite existiert nicht
[/ruby]