2010-02-05 60 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; 
    } 
}