2013-08-26 55 views
0
WebClient.DownloadFile(downloadLink,"report.csv") 

不起作用。下载链接看起来像从间接网址下载动态生成的文件

https://www.domain.com/report.asp?DataFile=TQHVQHSYPN.csv

,其中作为被永远下载的文件来自于以下网址的类型

https://www.domain.com/net/DownloadManager.ashx?o=0&t=DE43035D

好像downloadLink如下一些重定向从第二获取文件网址,因为我一直只有downloadLink。

有没有办法下载一些重定向后面的文件?

回答

0

您可能需要手动执行此操作,而不是使用便捷方法DownloadFile。我不知道这有什么差别,但也许你可以试试:

  1. 下载链接创建HttpWebRequest并确保AllowAutoRedirect属性是true(它应该是默认反正)

  2. 使用GetWebResponse方法获取HttpWebResponse - 你可能会需要从GetWebResponse将返回值转换为HttpWebResponse

  3. 使用类似GetResponseStream下载文件本身

+0

我试过这样,但它的返回登录页面。我从我的webbrowser控件中传递了cookie,我已经登录但仍然没有运气。你能看看我可能错过了什么的代码。 http://pastebin.com/5gYTdxNz – AZee

+0

当您设置cookie时,New Uri(url)中提供的URL是什么?这是像'https://www.domain.com/report.asp?DataFile = TQHVQHSYPN.csv'吗?如果是这样,您可能希望它成为网站的根(例如'http:// www.domain.com'或'https:// www.domain.com'),而不是您尝试从网站下载的URL – nkvu

+0

是的,它是有道理的。我尝试过'request.CookieContainer.SetCookies(New Uri(“https://www.domian.com”),WebBrowser1.Document.Cookie)',它仍然显示登录页面 – AZee