У меня есть удаленный сервер файлов для всех моих файлов. Я хочу проверить, существуют ли они перед их отображением.Проверка WebRequest Если файл выходит на удаленном сервере, он всегда возвращает True из-за перенаправления 404
Это прекрасно работает, но ломается, когда файл не существует, как на веб-сайте. У меня есть перенаправление auto 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;
}
Устранение автопереадресации? Предоставление фактического кода 404 полезно и во многих других случаях (например, для SEO и отладки). – Matthew
Чтобы решить вашу непосредственную проблему через образец кода, вы можете проверить заголовки ответов, возможно, вы ожидаете определенный тип mime, и может быть иначе, когда вы получите фальшивый ответ 404. – Matthew
@Matthew - Ты прибил его! Проверяя MimeType или «ContentType» Response, он возвращает «text/html», если он попадает в перенаправление. Я разместил свое исправление ниже. –