Оказывается, что URL в моем вопросе фактически возвращает HTML-контент и выполняет перенаправление «метатег». Поэтому мне пришлось сделать следующее:
var redirect = Regex.Match(new string(buffer, 0, count), @"\<meta(?=[^>]*http-equiv\W*refresh)[^>]*?content\s*\=[^=>]*url\s*\=\s*(?<Url>[^'"">]+)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
if (redirect.Success)
{
Uri uri = new Uri(new Uri(externalUrl, UriKind.Absolute), new Uri(redirect.Groups["Url"].Value, UriKind.RelativeOrAbsolute));
return SaveUrlToTemporaryFile(uri.AbsoluteUri, needsFullDownload);
}
Я получаю окончательный URL-адрес из метатегов из возвращенного содержимого HTML и снова вызываю процедуру загрузки.