2010-02-05 58 views
4

我需要检查一个文本文件是否存在于不同域上的站点上。该URL可能是:检查ASP.NET中是否存在文本文件

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

我需要从后面的代码做到这一点。我试图使用HttpWebRequest对象,但不知道如何去做。

编辑:我正在寻找这样做,我会执行每隔几秒钟

回答

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

如果每隔几秒钟执行一次,您可能还希望将HttpWebRequest.Timeout属性设置为较低的值。默认值为100秒,如果文件不可用或服务器无响应,您可能不希望等那么久。 – 2010-02-05 23:46:59

+1

如果文件不存在,那么requestGetResponse()会引发异常?远程服务器返回一个错误:(404)未找到。“,”StackTrace“:”在System.Net.HttpWebRequest.GetResponse – Nick 2010-02-05 23:50:01

+0

我猜这可能是包裹在一个使用块,使其有点莫'好不需要Close())。 – Beska 2010-02-05 23:51:57

0

这样的事情可能会为你工作:

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