C# Как скачать CSV-файл с url-адреса
Я знаю, что это своего рода глупый вопрос, но я прочитал много форумов, и у меня ничего не получалось. ("https://www.nasdaq.com/api/v1/historical/HPQ/stocks/2010-11-14/2020-11-14") У меня есть URL-адрес, по которому мне нужно загрузить файл csv. Когда я вставляю этот URL-адрес в браузеры, он работает нормально, но когда я вставляю его в свое приложение, он вообще не работает. Мое приложение просто перестает отвечать и создает пустой файл.
WebClient webClient = new WebClient();
webClient.DownloadFile(
"https://www.nasdaq.com/api/v1/historical/HPQ/stocks/2010-11-14/2020-11-14",
@"HistoryDataStocks.csv");
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);
}
}
Файловый поток будет содержать ваш файл.