Wie um zu überprüfen, ob eine Datei vorhanden ist, die auf einem webserver zu, indem Sie seine URL?
in unserer Anwendung haben wir eine Art online-Hilfe. Es funktioniert wirklich einfach: Wenn der Benutzer klickt auf den Hilfe-button eine URL aufgebaut ist, abhängig von der aktuellen Sprache und Kontext (z.B. "http://example.com/help/" + [LANG_ID] + "[HELP_CONTEXT]) und bezeichnet die innerhalb des Browsers.
Also meine Frage ist: Wie kann ich überprüfen, ob eine Datei existiert auf dem server ohne das laden der kompletten Datei-Inhalt?
Vielen Dank für Ihre Hilfe!
Update: vielen Dank für Ihre Hilfe. Meine Frage wurde beantwortet.
Jetzt haben wir die proxy-Authentifizierung Probleme ein nicht senden der HTTP-Anforderung 😉
InformationsquelleAutor Alexander | 2009-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie verwenden können .NET zu tun, einen HEAD-request ab, und dann sehen Sie den status der Antwort.
Würde Ihr code folgendermaßen Aussehen (adaptiert von Die einfache HTTP-HEAD-Request):
Hier ist eine Liste mit den Details der Statuscodes, die zurückgegeben werden können, indem der StatusCode enumerator.
WebRequest request = WebRequest.Create(url); request.Method = "HEAD"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); HttpStatusCode status = response.StatusCode;
anyway, ich Danke Ihnen so sehr.stackoverflow.com/questions/192085/...
wenn dies gibt Ihnen
The remote server returned an error: (401) Unauthorized
weil einige Server-Konfiguration legen Sie dierequest.Method = "HEAD";
lineSie sollten wickeln Sie das
request.GetResponse()
innerhalb eines try-catch-weil Sie möglicherweise eine WebException (zum Beispiel haben Sie möglicherweise die Ausnahme vonThe remote server returned an error: (403) Forbidden.
wenn Sie versuchen zu tun Wunsch.GetResponse()InformationsquelleAutor Gavin Miller
Können wir davon ausgehen, dass Sie Ihren web-Anwendung auf dem gleichen Webserver wie Sie das abrufen Ihrer Hilfe-Seiten aus? Wenn ja, dann können Sie die Server.MapPath-Methode zu finden, einen Pfad zu der Datei auf dem server in Kombination mit der Datei.Exists-Methode aus dem System.IO-namespace, um zu bestätigen, dass die Datei vorhanden ist.
ah ok, auch in diesem Fall bin ich ziemlich sicher, dass die Antwort, die Sie brauchen, wurde durch die anderen Menschen hier schon.
InformationsquelleAutor Streklin
Senden Sie einen HEAD-request für die URL (statt GET). Der server sendet einen 404, wenn es nicht vorhanden ist.
InformationsquelleAutor Andrew Medico
Werfen Sie einen Blick auf die HttpWebResponse Klasse. Sie könnte so etwas tun:
InformationsquelleAutor SecretDeveloper
Wenn Sie wollen, überprüfen Sie den status des Dokuments auf dem server:
Danke.
InformationsquelleAutor Antipod
EDIT: Scheinbar eine gute Methode, dies zu tun wäre eine HEAD-Anforderung.
Könnte man auch eine server-Anwendung, speichert die Namen aller verfügbaren web-Seite auf dem server. Ihre client-Anwendung könnte dann Fragen Sie diese Anwendung und reagiert ein wenig schneller als eine volle Seite verlangen, und ohne das werfen ein 404-Fehler jedes mal, wenn die Datei nicht vorhanden ist.
Ich sehe das jetzt.
InformationsquelleAutor Michael Todd