private async void 下载保存测试股票数据文件(string stockCode)
{
//设定下载时间段
DateTime endDate = DateTime.Now;
DateTime startDate = endDate.AddDays(-30);
string filePathName = "C:\\TEMP\\" + stockCode + ".csv";
string uri = string.Format("http://quotes.money.163.com/service/chddata.html?code={0}&start={1}&end={2}&fields=TCLOSE;HIGH;LOW;TOPEN;TURNOVER;VOTURNOVER", stockCode, startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd"));
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
using (StreamReader srWeb = new StreamReader(responseStream, Encoding.GetEncoding("gb2312")))
{
string text = await srWeb.ReadToEndAsync();
//或者取消异步直接string text = srWeb.ReadToEnd();
//或者循环读取一行While(text = srWeb.ReadLine() != null)
Console.WriteLine(text);
}
}
//即使使用ReadLine(),第一次有一行数据,第二次读行就为空了,啥道理啊?困住了,大家能否救救我,跪谢!
//用uri的实际字符串手动在浏览器里能直接下载到完整的多行数据,比如:
http://quotes.money.163.com/service/chddata.html?code=0601336&start=20160616&end=20160716&fields=TCLOSE;HIGH;LOW;TOPEN;TURNOVER;VOTURNOVER