Asp.Net 5分鐘實現網頁實時監控代碼
在項目開發中經常會用到監控功能,下面通過本篇文章給大家介紹Asp.Net 5分鐘實現網頁實時監控,需要的朋友可以參考下一、為什么會用到網頁實時監控 LZ最近在無錫買房了,雖然在...
在項目開發中經常會用到監控功能,下面通過本篇文章給大家介紹Asp.Net 5分鐘實現網頁實時監控,需要的朋友可以參考下
一、為什么會用到網頁實時監控
LZ最近在無錫買房了,雖然在上海工作,但是上海房價實在太高無法承受,所以選擇還可以接受的無錫作為安身之地。買過房的小伙伴可能知道買房的流程,買房中間有一步很重要的就是需要商品房備案,簡單點說就是你買房時可以在政府商品房備案網站處查看你購買房的備案情況,如果是已經備案了開發商還在賣這套房子,那肯定就是一房多賣了。而且很重要一點就是,只有備過案,才能進行下一步銀行貸款,在目前銀行利息越來越高的情況下,肯定是越早備案越早貸款越有利,所以以最快速度知道自己購買房子的備案情況尤為重要。
當然也可以每天到網站查詢自己的備案情況,顯然這不是程序員的做法,更不是.Net程序員的做法。程序員的做法肯定是備案一旦下來,程序老老實實的通知到手機上。順便吐槽一點,查詢備案的網站真慢。
二、選擇windows服務、窗體(winform)、web還是控制臺程序?
當然最合適的肯定是windows服務,winform和web肯定也可以的,控制臺程序不一定是最合適的,但肯定開發是最快速的。綜合考慮了一下,因為是一個很小的監控項目而且只會用一兩個月,或者一兩天,所以沒變要搞那么復雜,而且windows服務還要安裝到服務器,最重要的是控制臺是最快開發和最容易部署的,所以最終選擇了控制臺程序。
三、分析需求
1、需要每隔幾分鐘查詢一次備案情況,所以需要System.Timers.Timer。當然如果是非常健壯的或者是完整的項目,建議用Quartz.NET,當然可以選擇Topshelf、Hangfire、FluentScheduler等等。
2、因為需要查詢網站的備案情況,獲取備案網頁的html,然后判斷html中是否含有“待售”字樣即可,如果沒有就說明已經備案了。 這時需要System.Net.WebClient。查詢網站.net下就更多了,最基礎的就是HttpWebRequst,HttpClient,或者用RestSharp,都是不錯的選擇。
3、因為需要實時通知情況,所以選擇了阿里云的短信通知,因為其他項目用到,所以直接復制代碼來用。當然也有很多通知,比如郵件,app,等等。當然我們沒必要搞那么復雜。
四、代碼模塊
直接代碼,邏輯和代碼很簡單。
class Program
{
static System.Timers.Timer timer = null;
static void Main(string[] args)
{
timer = new System.Timers.Timer(2 * 60 * 1000);
timer.Elapsed += Timer_Elapsed; ;
timer.Start();
Console.ReadKey();
}
private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
WebClient client = new WebClient
{
Encoding = System.Text.Encoding.GetEncoding("utf-8")
};
var html = client.DownloadString("http://www.xxxx.com/xxxxx.html");
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "......" + "未簽。");
if (html.IndexOf("待售") == -1)
{
if (timer != null)
timer.Stop();
// 發送5條短信
for (int i = 0; i < 5; i++)
{
// 發送短信
SmsMessage.Send("152****7178", "SMS_92310001", new { name = "Emrys", status = "恭喜恭喜恭喜,房子已簽售!" });
Thread.Sleep(5 * 1000);
}
}
}
}
五、部署
好吧,這項沒啥以及意義,直接生成代碼,在bin目錄拷貝Debug文件夾直接扔到服務器,點擊運行xxxxxxx.exe。部署完畢。^_^
六、總結
1、雖然當時只是突發奇想,并沒有具體統計時間,拿起vs就是一頓突突。所有代碼和部署應該不會超過5分鐘。 從這可以看出.Net在vs配合下在一些方面做的還是不錯的。
2、現在.Net core開源跨平臺以及運行速度,C#“優美的語言”,vs宇宙第一IDE,其他不多說,望.Net越來越好。
以上所述是小編給大家介紹的Asp.Net 5分鐘實現網頁實時監控,希望對大家有所幫助
用ASP實現在線壓縮與解壓縮功能代碼
您還在為空間的FTP不穩定而煩惱嗎?現在您只用上傳您的RAR壓縮包,即可!ASP在線解壓/壓縮工具只要幾秒的時間,解決了網速慢,FTP丟失數據的一大難題先上一個完整代碼<!--Name -A...
Asp.Net MVC記住用戶登錄信息下次直接登錄功能
有的時候做網站,就需要記住用戶登錄信息,下次再登錄網站時,不用重復輸入用戶名和密碼,原理是瀏覽器的cookie把狀態給記住了!這篇文章主要介紹了Asp.Net MVC記住用戶登錄信息下次...
ASP使用正則提取內容里所有圖片路徑SRC的實現代碼
有時候客戶提交的內容里包含多個圖片,客戶想單獨把圖片路徑提取出來進行保存,下面腳本之家小編跟大家分享ASP正則提取內容里所有圖片路徑SRC的方法函數,需要的朋友可以參考下...
宏基aspire s7筆記本怎么設置U盤啟動?Acer aspire s7筆記本U盤啟動bios設置教程
acer aspire s7筆記本是在2012年的時候上市的,目前已經停產了。用過acer aspire s7筆記本的朋友都清楚,acer aspire s7筆記本在使用幾年后都會有重裝系統的需要,但是卻有很多用戶不知道怎么設置U盤啟動,那么接下來小編就為大家分享acer aspire s7筆記本u盤啟動bios設置教程。...
使用用ASP自動解析網頁中的圖片地址的方法
一,取得原頁中的圖片的地址。 <% function PicStr(str) Set objRegExp = New Regexp '設置配置對象 objRegExp.IgnoreCase = True '忽略大小寫 o...
ASP編程中Session對象失效的客戶端解決方法
雖然利用Timeout屬性釋放資源的策略是出于保護服務器的目的,但是Session對象不可預知的失效性,卻成為開發應用程序的一個弊病。因而在實際應用程序的開發中,必須解決Session對象失效的問題。...
利用ASP發送和接收XML數據的處理方法
因為要做移動夢網WAP的一些接口,所以要用到這種方式,這個是ASP版本的,利用了MSXML2.XMLHTTP對像,利用這種方法,ASP里調用Servlet或Web Service都是很輕松的!...
使用ASP開發網頁需要牢記的9個注意事項
永遠不要相信用戶輸入的內容具有適當的大小或者包含適當的字符。在使用其做出決策之前應該始終對用戶輸入進行驗證。最佳的選擇是創建一個 COM+ 組件,...
ASP實現限制一個ip只能訪問一次的方法
文章主要介紹了asp實現限制一個ip只能訪問一次的方法,感興趣的小伙伴們可以參考一下限制一個ip只能訪問一次,現在將asp代碼分享給大家: <% '////////////////////////////...
ASP程序中常使用的幾種腳本語言
在瀏覽器中通過查看源代碼的方式是無法看到ASP源代碼的,你只能看到由ASP文件輸出的結果,而那些只是純粹的HTML而已。這是因為,在結果被送回瀏覽器前,腳本已經在服務器執行了。實...