看板 C_Sharp 關於我們 聯絡資訊
本人不才想下載股市資料,用瀏覽器都可開啟,但只要用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()) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.177.58 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1570365680.A.7C9.html
Shrugg: 網站有防止攻擊,不能連續取資料,要設定每捉一筆停頓幾秒 10/06 20:48
Shrugg: ,如果只是要大盤資料,去yahoo財經網或透過api去下載 10/06 20:48
SeanChiu: 應該是TLS版本問題,請參考https://blog.darkthread.net 10/20 01:10
SeanChiu: /blog/webclient-and-tls12/ 10/20 01:10