2010-02-05 6 views
4

Je dois vérifier si un fichier texte existe sur un site sur un domaine différent. L'URL peut être:Vérifiez si un fichier texte existe dans ASP.NET

http://sub.somedomain.com/blah/atextfile.txt 

Je dois faire ceci à partir du code derrière. J'essaie d'utiliser l'objet HttpWebRequest, mais je ne sais pas comment le faire.

EDIT: Je suis à la recherche d'un moyen de poids léger de faire ce que je vais exécutais cette logique toutes les quelques secondes

Répondre

2
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
         "http://sub.somedomain.com/blah/atextfile.txt"); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

if (response.StatusCode == HttpStatusCode.OK) 
{ 
    // FILE EXISTS! 
} 
response.Close(); 
+3

Vous pouvez également définir la propriété HttpWebRequest.Timeout sur une valeur faible, si vous le faites toutes les quelques secondes. La valeur par défaut est 100 secondes, vous ne voulez probablement pas attendre si le fichier est indisponible ou si le serveur ne répond pas. –

+1

Il semble que requestGetResponse() lève une exception si le fichier n'existe pas? Le serveur distant a renvoyé une erreur: (404) Introuvable. "," StackTrace ":" at System.Net.HttpWebRequest.GetResponse – Nick

+0

Je suppose que ceci pourrait être enveloppé dans un bloc using pour le rendre un peu plus agréable (non Fermer() requis). – Beska

0

Quelque chose comme cela pourrait fonctionner pour vous:

using (WebClient webClient = new WebClient()) 
{ 
    try 
    { 
     using (Stream stream = webClient.OpenRead("http://does.not.exist.com/textfile.txt")) 
     { 
     } 
    } 
    catch (WebException) 
    { 
     throw; 
    } 
} 
Questions connexes