[问题] HttpWebRequest下载股票资料失败

楼主: a2975313 (GN)   2019-10-06 20:41:18
本人不才想下载股市资料,用浏览器都可开启,但只要用HttpWebRequest就会有
"基础连接已关闭: 传送时发生未预期的错误。"的问题。
原本想说是request header没填造成的,但按照chrome dev tool所观察到的
header值填也是一样...
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("
https://www.twse.com.tw/exchangeReport/MI_INDEX?response=html&date=20191003
&type=ALL");
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "text/html, application/xhtml+xml,
application/xml; q=0.9, */*; q=0.8";
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Edge/18.18362";
request.Method = "GET";
request.Referer = "no-referrer-when-downgrade";
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(new Uri("https://www.twse.com.tw/"),
new Cookie("_ga", "GA1.3.1661386241.1570275885"));
request.CookieContainer.Add(new Uri("https://www.twse.com.tw/"),
new Cookie("_gid", "GA1.3.1577552003.1570275885"));
request.Headers.Add("Accept-Encoding", "gzip, deflate, br");
request.Headers.Add("Accept-Language", "zh-TW");
request.Headers.Add("Cache-Control", "max-age=0");
request.Headers.Add("Sec-Fetch-Mode", "navigate");
request.Headers.Add("Sec-Fetch-Site", "none");
request.Headers.Add("Sec-Fetch-User", "?1");
request.Headers.Add("Upgrade-Insecure-Requests", "1");
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
作者: Shrugg (好柿花生)   2019-10-06 20:48:00
网站有防止攻击,不能连续取资料,要设定每捉一笔停顿几秒,如果只是要大盘资料,去yahoo财经网或透过api去下载
作者: SeanChiu (阿智)   2019-10-20 01:10:00
应该是TLS版本问题,请参考https://blog.darkthread.net/blog/webclient-and-tls12/

Links booklink

Contact Us: admin [ a t ] ucptt.com