如何从重定向页面获取文件的内容类型?

时间:2014-03-06 03:10:32

标签: c# .net downloading redirect downloading-website-files

我有一个应用程序,它会将您登录到一个网站,然后从该网站下载一些文件。

虽然,我已经能够下载所有类型的文件并正确保存,除了其链接重定向到另一个页面。

对于ex,如果在网页的源代码中,链接地址写为: -

http://someurl.com/view.php”,然后此链接重定向并立即开始下载(当我们点击网络brwoser中的链接时)。

我已经能够使用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 个答案:

答案 0 :(得分:2)

当您获得重定向的响应时,ResponseUri属性将为您提供实际响应的资源的URI。

因此,如果http://someurl.com/view.php重定向到http://example.com/foo.doc,则ResponseUri将包含http://example.com/foo.doc

了解“扩展”可能不是您所期望的。例如,我看到像http://example.com/document.php这样的网址会返回一个PDF文件。我见过带有“.mp3”扩展名的网址返回图像文件等。

您可以查看ContentType标题,这通常是对响应实际内容的更可靠指标,但不是保证。