Как получить тип содержимого файла со страницы перенаправления?

У меня есть приложение, которое регистрирует вас на веб-сайте, а затем загружает некоторые файлы с этого веб-сайта.

Хотя я смог загрузить все типы файлов и сохранить их правильно, кроме тех, чья ссылка перенаправляет на другую страницу.

Например, если в исходном коде веб-страницы адрес ссылки записывается так:

" http://someurl.com/view.php", затем эта ссылка перенаправляется, и загрузка немедленно начинается (когда мы нажимаем на ссылку в веб-браузере).

Я смог загрузить этот файл программно, используя HttpWebRequest
а затем настройку AllowAutoRedirect = true,

Проблема возникает при сохранении, мне нужно иметь расширение загружаемого файла (будь то документ Word, PDF-файл или какой-то другой файл)

Как мне это проверить?

Часть кода, который я использую:

     HttpWebRequest request = WebRequest.Create(UriObj) as HttpWebRequest;
     request.Proxy = null;
     request.CookieContainer = CC;
     request.AllowAutoRedirect = true ; 
     request.ContentType = "application/x-www-form-urlencoded";

1 ответ

Решение

Когда вы получите перенаправленный ответ, свойство ResponseUri предоставит вам URI ресурса, который фактически ответил.

Так что если http://someurl.com/view.php перенаправлен на http://example.com/foo.doc, затем ResponseUri будет содержать http://example.com/foo.doc,

Поймите, что "расширение" может не соответствовать вашим ожиданиям. Например, я видел URL как http://example.com/document.php вернуть файл PDF. Я видел URL с расширением ".mp3", которые возвращают файлы изображений и т. Д.

Вы можете проверить заголовок ContentType, который обычно является более надежным индикатором фактического содержания ответа, но не является гарантией.

Другие вопросы по тегам