C#如何从url下载csv文件[重复]
Posted
技术标签:
【中文标题】C#如何从url下载csv文件[重复]【英文标题】:C# How to download csv file from url [duplicate] 【发布时间】:2020-11-14 17:57:42 【问题描述】:我知道这是一个愚蠢的问题,但我已经阅读了很多论坛,但没有什么对我不起作用。 (“https://www.nasdaq.com/api/v1/historical/HPQ/stocks/2010-11-14/2020-11-14”) 我得到了需要下载 csv 文件的网址。当我将此网址粘贴到浏览器中时,它可以正常工作,但是 当我将它粘贴到我的应用程序中时,它根本不起作用。我的应用程序只是停止响应并创建空文件。
WebClient webClient = new WebClient();
webClient.DownloadFile(
"https://www.nasdaq.com/api/v1/historical/HPQ/stocks/2010-11-14/2020-11-14",
@"HistoryDataStocks.csv");
【问题讨论】:
您可以尝试使用HttpClient
,否则请查看此类似问题以获取一些提示。 ***.com/questions/307688/…
设置请求标头,如重复问题的答案所示。并考虑迁移到 HttpClient。 Microsoft 不鼓励使用 WebClient。
【参考方案1】:
您需要发送正确的网络请求。试试这个代码,它会工作:
var request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 30000;
request.AllowWriteStreamBuffering = false;
using (var response = (HttpWebResponse)request.GetResponse())
using (var s = response.GetResponseStream())
using (var fs = new FileStream("test.csv", FileMode.Create))
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = s.Read(buffer, 0, buffer.Length)) > 0)
fs.Write(buffer, 0, bytesRead);
bytesRead = s.Read(buffer, 0, buffer.Length);
文件流将包含您的文件。
【讨论】:
这并不比问题中更简单的代码更好。您没有尝试过问题中的 URL 吗? 这是另一种可行的方法。 用问题中的 URL 试试看,它不起作用。而且它不仅不同,而且没有理由地更加复杂。这样做是没有意义的。这是我们在拥有 WebClient 和 HttpClient 之前所做的。今天它或多或少已经过时了。 非常感谢您的回答)但不幸的是它对我不起作用我得到了异常(:System.Net.WebException:“操作超时过期”以上是关于C#如何从url下载csv文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从 CSV 生成 Excel 电子表格(ASP.NET C#)[重复]
使用 SSIS 从网站 (URL) 读取多个 CSV 文件?