這段時間沒有寫博客,思考了很多技術之外的東西,感覺有時候停一停思考一下生活還是不錯的。
在日常生活中,我們借助計算機系統解決了許多問題,網頁提供了這麼一個處理界面,而這個界面上的某些操作是可以通過代碼來執行的,這樣我們就可以將這個過程全部交給計算機來處理了。本篇將會通過一個簽到系統來說明。
假如,我們有一個簽到系統,每天都需要登錄系統,點擊“簽到”按鈕來記錄每天的考勤,當然拿這個過程來自動化僅僅只是個例子,現實生活中如果您這樣做被領導發現,那就給力了…
系統的界面
登錄:
登錄後跳轉到刷新頁面:
點擊刷新之後的效果:
這裡我們想要利用代碼進行刷新操作的話呢,需要經過登錄,刷新兩個步驟,這裡我想到兩個方案:
第一種方法:我們需要獲取要自動操作的頁面HTML,然後進行一些改動
在頁面HTML的最後我們使用腳本填寫了用戶名和密碼,並點擊了登錄的按鈕,這裡有個關鍵,這個被篡改後的HTML怎麼執行呢,我們只需要使用代碼將這個HTML文件讀取並解析一下即可,然後將獲取到的Index.aspx頁面HTML代碼再以同樣的方法解析即可。
第二種方法:在發送登錄請求時,我們使用Fiddler截獲了通信的數據
這裡注意要在地址localhost後面加上一個.才能被Fiddler截獲分析。當我們點擊Login後
看看傳遞了什麼數據吧
稍加分析便看到,回傳的是_VIEWSTATE的字符串,我們知道ASPX的頁面改變信息是通過這個隱藏的控件來回傳給服務端分析的,好,那麼我們只需要用代碼來模擬這次請求即可:
這段代碼是一個抽出來的方法,可以想指定的URL發送數據請求,我們來試試
經過斷點調試我們截獲了服務器返回的值
這就說明服務器接收到這個登錄請求後,通過了驗證,想客戶端返回了Index.aspx的HTML代碼。
我這裡只是拋磚引玉,各位朋友如果有更好的辦法,歡迎交流。