[問題] 為什麼WebRequest抓不到Response?

看板C_Sharp (C#)作者 (VAIO)時間9年前 (2015/12/30 14:12), 編輯推噓0(0016)
留言16則, 4人參與, 最新討論串1/1
請教版上先進, 小弟以往可用以下的code在基本市況報導網站抓個股訊息. 後來網頁更新, 變成要額外輸入UTC time才能查詢之後, 同樣的code會遇到 "遠端主機沒有回應"的狀況.(小弟只是加上產生UTC Time的代碼而已) 我有試過用代碼產生的URL去貼在IE或者FireFox都可以抓到回傳的stream 所以不像是網址的錯. 進一步Debug發現有一點很奇怪. 如果我重開個新IE或FF, 直接貼上URL這樣會沒有回應.但是如果我先連過去 那個基本市況報導網站, 然後開個tab再去貼同樣的URL又沒有問題? 這下我真的不知道該怎麼debug下去. 我有google其他人的code, 不過都是python或者很舊的. 希望版上先進給個方向, 謝謝. ---- var utcLocal = Regex.Replace(string.Format("{0}", (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds), @"\.\d+", ""); var stockUrl = string.Format("http://mis.twse.com.tw/stock/api/getStockInfo.jsp? ex_ch=tse_{0}.tw&json=1&delay=0&_={1}", stockNumber, utcLocal); var stockDataRequest = (HttpWebRequest)WebRequest.Create(stockUrl); var response = (HttpWebResponse)stockDataRequest.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { //處理抓到的Stream } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.81.109 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1451455973.A.E0B.html

12/30 15:37, , 1F
沒實際試,不過檢查一下cookie
12/30 15:37, 1F

12/31 05:13, , 2F
缺了方法
12/31 05:13, 2F

12/31 09:00, , 3F
缺了方法是甚麼意思? 不懂
12/31 09:00, 3F

12/31 09:04, , 4F
再一兩天搞不定 我就整合python用urllib3罷了
12/31 09:04, 4F

12/31 11:46, , 5F
是沒收到reponse(用proxy之類的看)、status code不是OK
12/31 11:46, 5F

12/31 11:46, , 6F
還是status code是OK但是body是空的?
12/31 11:46, 6F

12/31 11:47, , 7F
如果server沒回東西那你換什麼lib都是一樣的
12/31 11:47, 7F

12/31 11:53, , 8F
如果是status ok但是server回錯誤,那就是少資料
12/31 11:53, 8F

12/31 16:02, , 9F
request的method
12/31 16:02, 9F

12/31 16:22, , 10F
測過了,是Cookies的問題
12/31 16:22, 10F

12/31 16:25, , 11F
若是Cookie沒有設,會被redirect到http://1.1.1.3
12/31 16:25, 11F

12/31 16:25, , 12F
所以才會出現那個沒有回應的訊息
12/31 16:25, 12F

12/31 16:34, , 13F
比起其他網站,這個簡單多了,不用麻煩的參數還能抓
12/31 16:34, 13F

12/31 20:57, , 14F
Toby大 您說的沒錯 debug時我也發現會redirect到1.1.1.3
12/31 20:57, 14F

12/31 20:59, , 15F
可是cookie要怎麼設定? 我以為cookie是記憶在瀏覽器的啊
12/31 20:59, 15F

12/31 21:11, , 16F
謝Toby大 我成功了 先連去主頁面抓cookie保存給後續的用
12/31 21:11, 16F
文章代碼(AID): #1MWtNbuB (C_Sharp)
文章代碼(AID): #1MWtNbuB (C_Sharp)