C# 检查ASP.NET中是否存在文本文件
我需要检查不同域的站点上是否存在文本文件。URL可以是:C# 检查ASP.NET中是否存在文本文件,c#,asp.net,C#,Asp.net,我需要检查不同域的站点上是否存在文本文件。URL可以是: http://sub.somedomain.com/blah/atextfile.txt 我需要从代码隐藏中执行此操作。我正在尝试使用HttpWebRequest对象,但不确定如何使用它 编辑:我正在寻找一种轻量级的方法,因为我将每隔几秒钟执行一次此逻辑您可能可以使用此处使用的方法: 类似的东西可能适合您: using (WebClient webClient = new WebClient()) { try {
http://sub.somedomain.com/blah/atextfile.txt
我需要从代码隐藏中执行此操作。我正在尝试使用HttpWebRequest
对象,但不确定如何使用它
编辑:我正在寻找一种轻量级的方法,因为我将每隔几秒钟执行一次此逻辑您可能可以使用此处使用的方法:
类似的东西可能适合您:
using (WebClient webClient = new WebClient())
{
try
{
using (Stream stream = webClient.OpenRead("http://does.not.exist.com/textfile.txt"))
{
}
}
catch (WebException)
{
throw;
}
}
如果每隔几秒钟执行一次,您可能还希望将HttpWebRequest.Timeout属性设置为较低的值。默认值为100秒,如果文件不可用或服务器无响应,您可能不想等待那么长时间。如果文件不存在,requestGetResponse()似乎会引发异常?远程服务器返回了一个错误:(404)未找到。“,“StackTrace”:“at System.Net.HttpWebRequest.GetResponseI我猜这可能会被包装在一个using块中,以使其更美观(不需要Close()。@User102533:有什么异常?这可能就是你的答案。我猜这只是一个普通的“网络例外”。这够好吗?或者,您真的需要知道文件是否不存在,并且在服务器返回其他类型的错误时采取不同的操作吗?
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();