Как получить тип содержимого файла со страницы перенаправления?
У меня есть приложение, которое регистрирует вас на веб-сайте, а затем загружает некоторые файлы с этого веб-сайта.
Хотя я смог загрузить все типы файлов и сохранить их правильно, кроме тех, чья ссылка перенаправляет на другую страницу.
Например, если в исходном коде веб-страницы адрес ссылки записывается так:
" 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, который обычно является более надежным индикатором фактического содержания ответа, но не является гарантией.