检查ASP.NET中是否存在文本文件
问题描述:
我需要检查一个文本文件是否存在于不同域上的站点上。该URL可能是:检查ASP.NET中是否存在文本文件
http://sub.somedomain.com/blah/atextfile.txt
我需要从后面的代码做到这一点。我试图使用HttpWebRequest
对象,但不知道如何去做。
编辑:我正在寻找这样做,我会执行每隔几秒钟
答
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();
答
这样的事情可能会为你工作:
using (WebClient webClient = new WebClient())
{
try
{
using (Stream stream = webClient.OpenRead("http://does.not.exist.com/textfile.txt"))
{
}
}
catch (WebException)
{
throw;
}
}
如果每隔几秒钟执行一次,您可能还希望将HttpWebRequest.Timeout属性设置为较低的值。默认值为100秒,如果文件不可用或服务器无响应,您可能不希望等那么久。 – 2010-02-05 23:46:59
如果文件不存在,那么requestGetResponse()会引发异常?远程服务器返回一个错误:(404)未找到。“,”StackTrace“:”在System.Net.HttpWebRequest.GetResponse – Nick 2010-02-05 23:50:01
我猜这可能是包裹在一个使用块,使其有点莫'好不需要Close())。 – Beska 2010-02-05 23:51:57