WebRequest检查远程服务器上的文件是否存在由于404重定向而始终返回True
本文关键字:重定向 True 返回 存在 检查 服务器 是否 文件 WebRequest | 更新日期: 2023-09-27 18:24:38
我有一个文件共享远程服务器来存放我的所有文件。在显示它们之前,我想检查它们是否存在。
这很好,但当文件不存在时会中断,因为在网站上我有一个自动404重定向,因此如果文件不存在,它总是以状态代码200或TRUE返回,因为它脑海中的网页确实存在,因为它重定向并存在。
我该怎么绕过这个?
public bool verifyFile(string filePath)
{
bool result = true;
string Domain = "http://www.SiteName.com/";
try
{
WebRequest webRequest = WebRequest.Create(Domain + filePath);
webRequest.Timeout = 1200;
webRequest.Method = "HEAD";
webRequest.GetResponse();
}
catch
{
result = false;
}
return result;
}
@Matthew提供了正确答案。我需要检查返回的MimeType。如果它返回为网页(text/html;charset=utf-8),那么我将返回设置为false。如果文件确实存在,则mimetype将是图像或文档。请参阅下面的更新代码。
public bool verifyFile(string filePath)
{
bool result = true;
string Domain = "http://www.SiteName.com/";
try
{
WebRequest webRequest = WebRequest.Create(Domain + filePath);
webRequest.Timeout = 1200;
webRequest.Method = "HEAD";
WebResponse webResponse = webRequest.GetResponse();
result = webResponse.ContentType.ToString() == "text/html; charset=utf-8" ? false : true;
}
catch
{
result = false;
}
return result;
}