作者akafair (VAIO)
看板C_Sharp
標題[問題] 為什麼WebRequest抓不到Response?
時間Wed Dec 30 14:12:51 2015
請教版上先進, 小弟以往可用以下的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
→ Litfal: 沒實際試,不過檢查一下cookie 12/30 15:37
→ TobyH4cker: 缺了方法 12/31 05:13
→ akafair: 缺了方法是甚麼意思? 不懂 12/31 09:00
→ akafair: 再一兩天搞不定 我就整合python用urllib3罷了 12/31 09:04
→ ssccg: 是沒收到reponse(用proxy之類的看)、status code不是OK 12/31 11:46
→ ssccg: 還是status code是OK但是body是空的? 12/31 11:46
→ ssccg: 如果server沒回東西那你換什麼lib都是一樣的 12/31 11:47
→ ssccg: 如果是status ok但是server回錯誤,那就是少資料 12/31 11:53
→ TobyH4cker: request的method 12/31 16:02
→ TobyH4cker: 測過了,是Cookies的問題 12/31 16:22
→ TobyH4cker: 所以才會出現那個沒有回應的訊息 12/31 16:25
→ TobyH4cker: 比起其他網站,這個簡單多了,不用麻煩的參數還能抓 12/31 16:34
→ akafair: Toby大 您說的沒錯 debug時我也發現會redirect到1.1.1.3 12/31 20:57
→ akafair: 可是cookie要怎麼設定? 我以為cookie是記憶在瀏覽器的啊 12/31 20:59
→ akafair: 謝Toby大 我成功了 先連去主頁面抓cookie保存給後續的用 12/31 21:11