感覺他問的是相反地solution...
可以用System.Xml.XmlDocuemnt來處理接獲的Response Stream,然後用XmlDocument的方法來取得你要的Node資訊,不過驗證碼會比較麻煩...
驗證碼通常會存在伺服器端的Session,而Session常常是依賴Session Cookie來辨識,所以你在這個過程中會需要自己管理cookie。另外,他是圖片...你要想辦法自己破解出驗證碼XD
流程大概像這樣:
我有取得驗證碼的圖片
將它用Bitmap存起來
但我發現那和我第一次請求的驗證碼不一樣
你有用一樣的cookie去請求驗證碼的圖嗎?
我有用 response.Headers.Get("Set-Cookie");
取得server第一次給我的cookie
之後再用此cookie去請求圖片
我有用 response.Headers.Get("Set-Cookie");
取得server第一次給我的cookie
之後再用此cookie去請求圖片
這樣有點麻煩,你用CookieContainer去管理就好。(自己new CookieContainer(),然後之後的HttpWebRequest都沿用就好,你只是需要Cookie管理機制,但是並不太需要處理他的內容)
驗證碼圖片應該是每次request都不一樣,而且在request之後,session中存的驗證碼也會跟著改。
補充:剛剛試用tesseract,破解效果還算OK。
話說目前還不少雲端破Captcha服務,還提供API做整合,只是要錢XD
你是說我用CookieContainer來獲取管理cookie
並在之後的請求中一並將他傳過去是嗎?
HttpWebRequest有一個CookieContainer屬性...,只要每次都用同一個就好。
好像沒問完? 如果是要取圖形驗證碼, goo一下就有
https://dotblogs.com.tw/shadow/archive/2011/10/05/38823.aspx