標籤:android style blog code java width
這段時間學習了一下使用jsoup來解析網頁,也是看了下學校的正方教務系統,因為這個正方教務系統的各種不爽,不知道為什麼還是那麼多學校用這個系統呢?每到選課什麼的就死啦死啦的,從它的網頁上各種命名來看,簡直就和我們這些小菜鳥一樣o(╯□╰)o
使用AndroidHttpClient 而不是使用HttpClient,怎麼說AndroidHttpClient也是SDK中內建的,基於HttpConnection,所以來說效能上來說應該比較好吧.
因為不熟悉使用這個強大的工具導致走了很多彎路,浪費了很多時間 ,很多參數沒有像new 一個DefaultHttpClient簡單,AndroidHttpClient的參數需要手動設定一下才好,比如說我在java 工程中使用的是HttpClient,我也沒設定什麼參數,直接拿來就用,它內部已經幫我們處理了很多細節問題,像重新導向,,有時候我都不知道他重新導向幹嘛去了,經常擷取不到我需要的內容.在Android 工程中 ,使用AndroidHttpClient 預設不會自動重新導向,需要手動設定,還有忘記設定各個header導致各種問題.
此次任務是使用AndroidHttpclient來擷取指定網站的資料內容,包括類比各種post,get等請求.然後交由jsoup工具來解析出我需要的內容,比如課表查詢,使用者資訊,學產生績等...
當然在這之前對網站的抓包分析是不可少的,我就使用了最簡單的工具,Google瀏覽器和它內建的工具,特別注意這段中間的一段字串(24位),搞不懂原理,這個網站怎麼抓也抓不到cookie,
1.首先的登入進去才行,我們知道一般網站都會設定個驗證碼什麼的,所以我就想了各種辦法來嘗試是否可以直接不要驗證碼登入呢,可惜太難搞了,還是老老實實自己填寫吧,貌似那個叫什麼orc的可以自動識別類似的驗證碼的.
根據這個驗證碼地址找到連結,http://jwgl.hstc.edu.cn/(oco15si4snyeb04510vu0045)/CheckCode.aspx ,直接存取這個就是驗證碼了,但是我們特別需要擷取到中間的那段字串,它是每次隨機產生的,很像cookie的工作,後面的訪問都需要這段,
一開始我是直接固定了一段24位的字串給他,也能正常登陸進去,但是擷取各種資訊的時候就不能了.所以還得從訪問http://jwgl.hstc.edu.cn/CheckCode.aspx這個地址後會重新導向到一段新的地址,這個地址中間就有了24位字串了.然後根據這個字串加入首頁來類比登陸. 使用AndroidHttpClient擷取到這個網址的響應內容,經過重新導向後得到一個InputStream,然後讓它顯示到ImageView上,我在測試的時候經常接收不到響應的輸入資料流,可能是哪裡出問題了,在2.3系統上跑還很正常,在4.2上就經常沒內容了.
然後還是各種使用者輸入登入的過程了.
代碼就不貼了,放上串連,目前該項目進行中中,歡迎各位前來指導.