博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net 5分钟搞定网页实时监控
阅读量:5909 次
发布时间:2019-06-19

本文共 2216 字,大约阅读时间需要 7 分钟。

一、为什么会用到网页实时监控

 LZ最近在无锡买房了,虽然在上海工作,但是上海房价实在太高无法承受,所以选择还可以接受的无锡作为安身之地。买过房的小伙伴可能知道买房的流程,买房中间有一步很重要的就是需要商品房备案,简单点说就是你买房时可以在政府处查看你购买房的备案情况,如果是已经备案了开发商还在卖这套房子,那肯定就是一房多卖了。而且很重要一点就是,只有备过案,才能进行下一步银行贷款,在目前银行利息越来越高的情况下,肯定是越早备案越早贷款越有利,所以以最快速度知道自己购买房子的备案情况尤为重要。

当然也可以每天到网站查询自己的备案情况,显然这不是程序员的做法,更不是.Net程序员的做法。程序员的做法肯定是备案一旦下来,程序老老实实的通知到手机上。顺便吐槽一点,查询备案的网站真慢。

 

二、选择windows服务、窗体(winform)、web还是控制台程序?

当然最合适的肯定是windows服务,winform和web肯定也可以的,控制台程序不一定是最合适的,但肯定开发是最快速的。综合考虑了一下,因为是一个很小的监控项目而且只会用一两个月,或者一两天,所以没变要搞那么复杂,而且windows服务还要安装到服务器,最重要的是控制台是最快开发和最容易部署的,所以最终选择了控制台程序。

 

三、分析需求

1、需要每隔几分钟查询一次备案情况,所以需要。当然如果是非常健壮的或者是完整的项目,建议用,当然可以选择Topshelf、Hangfire、FluentScheduler等等。

2、因为需要查询网站的备案情况,获取备案网页的html,然后判断html中是否含有“待售”字样即可,如果没有就说明已经备案了。 这时需要。查询网站.net下就更多了,最基础的就是HttpWebRequst,HttpClient,或者用RestSharp,都是不错的选择。

3、因为需要实时通知情况,所以选择了,因为其他项目用到,所以直接复制代码来用。当然也有很多通知,比如邮件,app,等等。当然我们没必要搞那么复杂。

 

四、代码模块

直接代码,逻辑和代码很简单。

1 class Program 2 { 3     static System.Timers.Timer timer = null; 4  5     static void Main(string[] args) 6     { 7         timer = new System.Timers.Timer(2 * 60 * 1000); 8         timer.Elapsed += Timer_Elapsed; ; 9         timer.Start();10         Console.ReadKey();11     }12 13     private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)14     {15         WebClient client = new WebClient16         {17             Encoding = System.Text.Encoding.GetEncoding("utf-8")18         };19 20         var html = client.DownloadString("http://www.xxxx.com/xxxxx.html");21         Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "......" + "未签。");22         if (html.IndexOf("待售") == -1)23         {24             if (timer != null)25                 timer.Stop();26 27             // 发送5条短信28             for (int i = 0; i < 5; i++)29             {30                 // 发送短信31                 SmsMessage.Send("152****7178", "SMS_92310001", new { name = "Emrys", status = "恭喜恭喜恭喜,房子已签售!" });32                 Thread.Sleep(5 * 1000);33             }34 35         }36     }37 }

 

五、部署

好吧,这项没啥以及意义,直接生成代码,在bin目录拷贝Debug文件夹直接扔到服务器,点击运行xxxxxxx.exe。部署完毕。^_^

 

六、总结

1、虽然当时只是突发奇想,并没有具体统计时间,拿起vs就是一顿突突。所有代码和部署应该不会超过5分钟。 从这可以看出.Net在vs配合下在一些方面做的还是不错的。

2、现在.Net core开源跨平台以及运行速度,C#“优美的语言”,vs宇宙第一IDE,其他不多说,望.Net越来越好。^_^

 

转载地址:http://qdvpx.baihongyu.com/

你可能感兴趣的文章
.erb 中不能显示从mysql检索出的中文 incompatible character encodings: UTF-8 and ASCII-8BIT...
查看>>
一个专门下载全球气象站数据的网站(包括中国700多个站)
查看>>
51nod 1831: 小C的游戏(Bash博弈 找规律)
查看>>
使用filezilla连接树莓派失败
查看>>
个人VI
查看>>
Asp.net MVC + Redis
查看>>
虚拟机安装的ubutun全屏
查看>>
QT移植到海思平台上步骤
查看>>
[转载] ubuntu下定制Vim/Gvim及使用技巧
查看>>
LIS LCS n^2和nlogn解法 以及LCIS
查看>>
使用openssl演练数字签名
查看>>
插入容器STL学习笔记(八) 序列式容器 共性
查看>>
数据提交Ajax处理浏览器缓存的问题
查看>>
加中实训第一天(笔记+代码) - 2013.5.28
查看>>
website 合集
查看>>
Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析
查看>>
leetcode -- Remove Duplicates from Sorted List
查看>>
CSS样式优先级
查看>>
paip.调试js 查看元素事件以及事件断点
查看>>
sso单点登录研究
查看>>