Wie kann ich überprüfen, ob eine Ressource auf eine Webseite verfügbar ist?
Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
Dies kann man feststellen indem ein HTTP-Head-Request aufgebaut wird, welches den Responsecode des Servers analysiert. Ein Head-Request liefert alle Headers einer Adresse, wie bei einem normalen Get-Request, dabei wird der Body des Dokuments nicht mitgeliefert
(siehe [1]). Ein Codebeispiel für eine solche Funktion in C# sieht so aus:
public static bool CheckUrlExists(Uri targetUri)
{
try
{
HttpWebRequest HttpRequest = WebRequest.Create(targetUri) as HttpWebRequest;
HttpRequest.Method = "HEAD";
HttpWebResponse HttpResponse = HttpRequest.GetResponse() as HttpWebResponse;
int StatusCode = (int)HttpResponse.StatusCode;
if (StatusCode >= 100 && StatusCode < 400)
{
return true;
}
else if (StatusCode >= 500 && StatusCode <= 510)
{
return false;
}
return false;
}
catch
{
return false;
}
}
Eine Liste mit allen möglichen HTTP-Responsecodes kann man unter [2] finden.
[1] http://ochronus.com/http-head-request-good-uses/#.Uh4YHCTwCUk
[2] http://de.wikipedia.org/wiki/HTTP-Statuscode
Wir hoffen, vielen Besuchern der MSDN Foren
durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.
Viele Grüße,
Hristo Valev
App-Entwickler-Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline:
http://www.msdn-online.de/Hotline
Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu
MarkenzeichenInformationen zur Datensicherheit
sowie die gesonderten
Nutzungsbedingungen für die App-Entwickler-Hotline.