使用c#WebClient下载文件

时间:2014-05-03 19:58:56

标签: c# .net download webclient

我尝试使用此链接中的c#webclient下载csv文件:

http://www.tase.co.il/_layouts/Tase/ManagementPages/Export.aspx?sn=none&enumTblType=allShares&Columns=noneColumns&Titles=noneTitles&action=1&SubAction=0&GridId=33&CurGuid={26F9CCE6-D184-43C6-BAB9-CF7848987BFF}&ExportType=3

此链接在我的浏览器中正常运行;但是,当我使用以下代码

时,它不起作用
 WebClient ta = new WebClient();
        ta.DownloadFileAsync(new Uri("http://www.tase.co.il/_layouts/Tase/ManagementPages/Export.aspx?sn=none&enumTblType=allShares&Columns=noneColumns&Titles=noneTitles&action=1&SubAction=0&GridId=33&CurGuid={26F9CCE6-D184-43C6-BAB9-CF7848987BFF}&ExportType=3"), "s.csv");

我得到一个空的s.csv文件大小:0字节。 我该怎么办?

2 个答案:

答案 0 :(得分:2)

我尝试了你的代码,它为我返回了相同的结果。我注册了" DownloadProgressChanged"事件,可以看到一个例外:

System.Net.WebException:远程服务器返回错误:(403)Forbidden。

根据以下链接添加用户代理标头可解决此问题:

WebClient - The remote server returned an error: (403) Forbidden

答案 1 :(得分:-1)

这适用于类似问题:

WebClient.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)");

https://stackoverflow.com/a/2496982/445533

编辑:在接受的答案中链接的标题示例的格式不正确,可能会失败。