Csharp/C#教程:使用C#从网站下载文件分享


使用C#从网站下载文件

我想使用以下代码从网站下载文件:

WebClient webClient = new WebClient(); webClient.DownloadFile("https://www.nseindia.com/content/historical/EQUITIES/2011/MAR/cm07MAR2011bhav.csv.zip", @"c:myfile.txt"); 

显示的例外是“禁止错误403”

这意味着找不到页面,但我可以使用java代码下载该文件,也可以直接从该网站下载。

如何使用C#代码下载?

我用wget测试了这个URL,得到了403错误。 我能够通过向标头添加用户代理字符串来解决该问题

尝试使用webClient.Headers.Add(HttpRequestHeader.UserAgent, "blah")向头部添加用户代理字符串

首先要注意的是,如果您在浏览器中尝试URL,则该文件会下载。 这告诉你的是,你需要配置WebClient来发送模仿网站期望浏览器做什么的标题。 这对我有用:

  var wc = new WebClient(); var ua = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"; wc.Headers.Add(HttpRequestHeader.UserAgent, ua); wc.Headers["Accept"] = "/"; wc.DownloadFile("https://www.nseindia.com/content/historical/EQUITIES/2011/MAR/cm07MAR2011bhav.csv.zip", @"d:myfile.txt"); 

另外,保存到C:root是有问题的。 保存在其他地方。

您需要设置以下两个标头才能工作:

示例(已测试):

 WebClient webClient = new WebClient(); webClient.Headers.Add("Accept", "application/zip"); webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); webClient.DownloadFile("https://www.nseindia.com/content/historical/EQUITIES/2011/MAR/cm07MAR2011bhav.csv.zip", @"D:testtest.zip"); 

 using (WebClient wc = new WebClient()) { wc.Headers.Add("Referer:https://www.nseindia.com/products/content/equities/equities/archieve_eq.htm"); wc.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"); wc.DownloadFile(url, fileName); } 

尝试类似的东西

上述就是C#学习教程:使用C#从网站下载文件分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/951839.html

(0)
上一篇 2021年11月19日
下一篇 2021年11月19日

精彩推荐