我尝试使用此链接中的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字节。 我该怎么办?
答案 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
编辑:在接受的答案中链接的标题示例的格式不正确,可能会失败。