程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 寫代碼自動操作,更給力!

寫代碼自動操作,更給力!

編輯:關於C語言

這段時間沒有寫博客,思考了很多技術之外的東西,感覺有時候停一停思考一下生活還是不錯的。

在日常生活中,我們借助計算機系統解決了許多問題,網頁提供了這麼一個處理界面,而這個界面上的某些操作是可以通過代碼來執行的,這樣我們就可以將這個過程全部交給計算機來處理了。本篇將會通過一個簽到系統來說明。

假如,我們有一個簽到系統,每天都需要登錄系統,點擊“簽到”按鈕來記錄每天的考勤,當然拿這個過程來自動化僅僅只是個例子,現實生活中如果您這樣做被領導發現,那就給力了…

系統的界面

登錄: 

 

登錄後跳轉到刷新頁面: 

 

點擊刷新之後的效果: 

 

這裡我們想要利用代碼進行刷新操作的話呢,需要經過登錄,刷新兩個步驟,這裡我想到兩個方案:

  • 分析Login.aspx頁面的HTML代碼,在原HTML代碼中加入JS腳本的方式來填寫用戶名密碼並提交到服務器
  • 通過Fiddler分析每次請求的數據內容,使用.Net中的HttpRequest相關類庫模擬這個登錄請求

第一種方法:我們需要獲取要自動操作的頁面HTML,然後進行一些改動

 

 

 在頁面HTML的最後我們使用腳本填寫了用戶名和密碼,並點擊了登錄的按鈕,這裡有個關鍵,這個被篡改後的HTML怎麼執行呢,我們只需要使用代碼將這個HTML文件讀取並解析一下即可,然後將獲取到的Index.aspx頁面HTML代碼再以同樣的方法解析即可。

第二種方法:在發送登錄請求時,我們使用Fiddler截獲了通信的數據 

 

這裡注意要在地址localhost後面加上一個.才能被Fiddler截獲分析。當我們點擊Login後 

 

看看傳遞了什麼數據吧 

 

稍加分析便看到,回傳的是_VIEWSTATE的字符串,我們知道ASPX的頁面改變信息是通過這個隱藏的控件來回傳給服務端分析的,好,那麼我們只需要用代碼來模擬這次請求即可: 

 這段代碼是一個抽出來的方法,可以想指定的URL發送數據請求,我們來試試

 

 經過斷點調試我們截獲了服務器返回的值

 

 這就說明服務器接收到這個登錄請求後,通過了驗證,想客戶端返回了Index.aspx的HTML代碼。

 我這裡只是拋磚引玉,各位朋友如果有更好的辦法,歡迎交流。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved