1. 웹 페이지가 실시간 모니터링에 사용되는 이유는 무엇입니까?
LZ는 최근 Wuxi에서 집을 구입했습니다. 그녀는 상하이에서 일하지만 상하이의 주택 가격은 너무 높고 견딜 수 없으므로 허용되는 Wuxi를 선택했습니다. 집을 구입 한 친구들은 집을 사는 과정을 알 수 있습니다. 주택을 구입하는 데있어 매우 중요한 단계 중 하나는 상업용 주택 제출이 필요하다는 것입니다. 간단히 말해서, 집을 구입할 때 정부 상업용 주택 제출 웹 사이트에서 집의 등록 상태를 확인할 수 있습니다. 개발자가 이미 등록되어 있으며 여전히이 집을 판매하는 경우 1 베드룸 판매 여야합니다. 그리고 매우 중요한 점은 사건을 준비 함으로써만 다음 은행 대출을 진행할 수 있다는 것입니다. 은행의이자가 점점 높아지면서 등록이 일찍 등록할수록 대출이 더 좋을수록 좋습니다. 따라서 집 구매의 신고 상태를 가능한 빨리 아는 것이 특히 중요합니다.
물론 매일 웹 사이트에서 제출 상태를 확인할 수도 있습니다. 분명히, 이것은 프로그래머가있는 방식이 아니며 .NET 프로그래머의 방식도 아닙니다. 프로그래머의 접근 방식은 등록이 완료되면 프로그램을 휴대 전화로 정직하게 알리는 것입니다. 그건 그렇고, 나는 서류 웹 사이트가 정말 느리다고 불평하고 싶습니다.
2. Windows 서비스, 양식 (Winform), 웹 또는 콘솔 프로그램을 선택 하시겠습니까?
물론 가장 적합한 것은 확실히 Windows 서비스, WinForm 및 웹은 확실히 괜찮습니다. 콘솔 프로그램이 반드시 가장 적합한 것은 아니지만 개발이 가장 빠릅니다. 포괄적 인 고려 후, 그것은 매우 작은 모니터링 프로젝트였으며 1 ~ 2 개월 또는 1 일만 걸렸으므로 그렇게 복잡하지 않았습니다. 또한 Windows 서비스도 서버에 설치해야합니다. 가장 중요한 것은 콘솔을 개발하기에 가장 빠르고 가장 쉽게 배포하기가 쉽기 때문에 마침내 콘솔 프로그램을 선택했다는 것입니다.
3. 요구 사항을 분석하십시오
1. 제출 상황은 몇 분마다 점검해야하므로 System.Timer.Timer가 필요합니다. 물론 매우 강력하거나 완전한 프로젝트라면 Quartz.net을 사용하는 것이 좋습니다. 물론, 당신은 Topshelf, Hangfire, Fluentscheduler 등을 선택할 수 있습니다.
2. 웹 사이트의 등록 상태를 확인해야하기 때문에 등록 웹 페이지의 HTML을 얻은 다음 HTML에 "판매용"이라는 단어가 포함되어 있는지 확인하십시오. 그렇지 않은 경우 등록이 제출되었음을 의미합니다. System.net.webclient가 필요합니다. .NET 아래에는 더 많은 검색 웹 사이트가 있습니다. 가장 기본적인 것은 httpwebrequest, httpclient 또는 restsharp입니다.
3. 실시간 알림이 필요하기 때문에 Alibaba Cloud의 SMS 알림이 선택되었습니다. 다른 프로젝트가 사용되므로 코드를 직접 복사하여 사용할 수 있습니다. 물론 이메일, 앱 등과 같은 많은 알림도 있습니다. 물론 그렇게 복잡 할 필요는 없습니다.
4. 코드 모듈
직접 코드, 논리 및 코드는 간단합니다.
클래스 프로그램 {static system.timers.timer timer = null; static void main (String [] args) {timer = new System.Timer.Timer (2 * 60 * 1000); timer.elapsed += timer_elapsed; ; timer.start (); Console.readkey (); } private static void timer_elapsed (객체 sender, system.timers.elapsedeventArgs e) {webClient 클라이언트 = 새로운 웹 클리어 {encoding = system.text.encoding.getEncoding ( "UTF-8")}; var html = client.downloadString ( "http://www.xxxx.com/xxxx.html"); console.writeline (datetime.now.tostring ( "yyyy-mm-dd hh : mm : ss") + "..." + "서명되지 않음"); if (html.indexof ( "판매") == -1) {if (timer! = null) timer.stop (); // (int i = 0; i <5; i ++)에 대한 5 개의 문자 메시지 보내기 {// smsmessage.send ( "152 **** 7178", "sms_92310001", new {name = "emrys", status = "축하, 축하, 집이 판매를 위해 서명되었습니다!"); Thread.sleep (5 * 1000); }}}}