最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

手把手教你如何基于C#制作一個(gè)網(wǎng)址檢測(cè)工具

 更新時(shí)間:2023年02月16日 09:19:42   作者:摔跤貓子  
這篇文章主要給大家介紹了關(guān)于如何基于C#制作一個(gè)網(wǎng)址檢測(cè)工具的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言

此文主要基于C#制作一個(gè)網(wǎng)址檢測(cè)工具。隨著時(shí)間推移以及公司人員的變動(dòng),手頭所負(fù)責(zé)的項(xiàng)目也越來(lái)越多,對(duì)網(wǎng)站運(yùn)行狀況的管理也是一件讓人十分頭疼的事,秉持著偷懶是第一生產(chǎn)力的原則,制作一個(gè)工具對(duì)網(wǎng)址一鍵監(jiān)測(cè)。

實(shí)現(xiàn)流程

1、創(chuàng)建項(xiàng)目

打開Visual Studio,右側(cè)選擇創(chuàng)建新項(xiàng)目。

搜索框輸入winform,選擇windows窗體應(yīng)用,填寫對(duì)應(yīng)的保存路徑點(diǎn)擊下一步,創(chuàng)建成功后如下圖,會(huì)有一個(gè)默認(rèn)打開的Form窗體。

2、頁(yè)面設(shè)計(jì)

準(zhǔn)備對(duì)應(yīng)的圖標(biāo)素材,通過(guò)Icon以及窗體Text屬性修改窗體圖標(biāo)以及標(biāo)題顯示;同時(shí)配置StartPosition屬性值為CenterScreen,讓窗體默認(rèn)居中顯示。

在左側(cè)工具箱拖拽TextBox以及Button控件,實(shí)現(xiàn)界面大致布局。

單擊窗體上TextBox的小箭頭,設(shè)置允許TextBox置于顯示多行文本的模式。

Button控件照葫蘆畫瓢通過(guò)設(shè)置其Text屬性修改按鈕文本顯示。

3、功能實(shí)現(xiàn)

封裝http請(qǐng)求函數(shù),用于創(chuàng)建http請(qǐng)求及響應(yīng)code。

public string PingUrl(string url)
{
    //創(chuàng)建HttpWeb請(qǐng)求
    var mWebRequest = (HttpWebRequest)WebRequest.Create(url);
    //創(chuàng)建HttpWeb相應(yīng)
    var mWebResponse = (HttpWebResponse)mWebRequest.GetResponse();
    mWebResponse.Close();
    //獲取響應(yīng)狀態(tài)碼
    string code=mWebResponse.StatusCode.ToString();
    return code;
}

HttpWebRequest詳解:HttpWebRequest是C#原生語(yǔ)法提供的實(shí)現(xiàn)了Http協(xié)議完整封裝的類,可以實(shí)現(xiàn)任意類型的Http請(qǐng)求。

屬性名稱屬性值
AllowAutoRedirect獲取或設(shè)置一個(gè)值,該值指示請(qǐng)求是否應(yīng)跟隨重定向響應(yīng)
CookieContainer獲取或設(shè)置與此請(qǐng)求關(guān)聯(lián)的cookie
Credentials獲取或設(shè)置請(qǐng)求的身份驗(yàn)證信息
KeepAlive獲取或設(shè)置一個(gè)值,該值指示是否與 Internet 資源建立持久性連接
MaximumAutomaticRedirections獲取或設(shè)置請(qǐng)求將跟隨的重定向的最大數(shù)目
Proxy獲取或設(shè)置請(qǐng)求的代理信息
SendChunked獲取或設(shè)置一個(gè)值,該值指示是否將數(shù)據(jù)分段發(fā)送到 Internet 資源
Timeout獲取或設(shè)置請(qǐng)求的超時(shí)值
UserAgent獲取或設(shè)置 User-agent HTTP 標(biāo)頭的值
ContentTypeHttp內(nèi)容類型
Headers指定組成 HTTP 標(biāo)頭的名稱/值對(duì)的集合
封裝兩個(gè)正則函數(shù),判斷用戶輸入的信息是否為正確的url地址,返回值設(shè)置為bool型即可。

/// <summary>
/// 判斷一個(gè)字符串是否為url
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsChinese(string str)//
{	
    try
    {
        string Url = @"[\u4e00-\u9fa5]";
        return Regex.IsMatch(str, Url);
    }
    catch (Exception ex)
    {
        return false;
    }
}
public static bool IsWeb(string url)
{
    string Pattern = @"^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+";
    Regex r = new Regex(Pattern);
    Match m = r.Match(url);
    if (m.Success)
        return true;
    else
        return false;
}
在窗體雙擊開始檢測(cè)按鈕,生成對(duì)應(yīng)的點(diǎn)擊事件代碼。

private void bt_ping_Click(object sender, EventArgs e){

}
定義一個(gè)多線程表達(dá)式。

private void bt_ping_Click(object sender, EventArgs e)
{
    int count = 0;
    CheckForIllegalCrossThreadCalls = false;
    new Thread(new ThreadStart(new Action(() =>
    {

    }))).Start();
}
定義一個(gè)變量記錄行號(hào)條數(shù),同時(shí)獲取用戶輸入的域名數(shù)據(jù)并進(jìn)行遍歷。

 string rowNum = "";
 for (int i = 0; i < txt_url.Lines.Length; i++)
 {
     
 }
在遍歷的過(guò)程中調(diào)用上述步驟的正則函數(shù)判斷用戶輸入的域名是否合法。

  for (int i = 0; i < txt_url.Lines.Length; i++)
  {
      string url = txt_url.Lines[i].Trim();
      if (!string.IsNullOrEmpty(url))
      {
          if (!IsChinese(url))
          {
              if (!url.StartsWith("http"))
              {
                  url = string.Format("http://{0}", url);
              }
              if (IsWeb(url))
              {
              }
              else
              {
              }
          }
          else
          {
          }
      }
  }
通過(guò)try catch函數(shù)捕捉異常,同時(shí)將結(jié)果進(jìn)行輸出。

 if (IsWeb(url))
 {
     count++;
     rowNum = count < 10 ? string.Format("0{0}", count) : count.ToString();

     try
     {
         string ping_code = PingUrl(url);

         if (ping_code == "OK")
             txt_result.AppendText(string.Format("{0}:{1}————————>>{2}", rowNum, url, ping_code));
         else
             txt_error.AppendText(string.Format("{0}:{1}————————>>{2}", rowNum, url, ping_code));
     }
     catch (Exception ex)
     {
         txt_error.AppendText(string.Format("{0}:{1}————————>>{2}", rowNum, url, ex.Message));
         txt_error.AppendText("\r\n");
     }
 }
在遍歷結(jié)束后將行號(hào)進(jìn)行輸出,匯總顯示所檢測(cè)的域名數(shù)量。

分別雙擊清空網(wǎng)址及清空結(jié)果按鈕,生成對(duì)應(yīng)的點(diǎn)擊事件并將TextBox清空。

private void bt_clear_Click(object sender, EventArgs e)
{
    txt_result.Text = "";
    txt_error.Text = "";
}

private void bt_urllist_Click(object sender, EventArgs e)
{
    txt_url.Text = "";
}

 總結(jié)

到此這篇關(guān)于如何基于C#制作一個(gè)網(wǎng)址檢測(cè)工具的文章就介紹到這了,更多相關(guān)C#制作網(wǎng)址檢測(cè)工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在datagridview中添加button按鈕

    如何在datagridview中添加button按鈕

    這篇文章主要介紹了如何在datagridview中添加button按鈕問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • C#之Socket(套接字)通信

    C#之Socket(套接字)通信

    這篇文章介紹了C#之Socket(套接字)通信,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • c# 實(shí)現(xiàn)觀察者模式

    c# 實(shí)現(xiàn)觀察者模式

    這篇文章主要介紹了c# 實(shí)現(xiàn)觀察者模式的步驟,幫助大家更好的理解和使用c#實(shí)現(xiàn)設(shè)計(jì)模式,感興趣的朋友可以了解下
    2021-01-01
  • C#的自定義語(yǔ)法糖的使用詳解

    C#的自定義語(yǔ)法糖的使用詳解

    這篇文章主要介紹了C#的自定義語(yǔ)法糖的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • CefSharp如何進(jìn)行頁(yè)面的縮放(Ctrl+滾輪)

    CefSharp如何進(jìn)行頁(yè)面的縮放(Ctrl+滾輪)

    CefSharp簡(jiǎn)單來(lái)說(shuō)就是一款.Net編寫的瀏覽器包,本文主要介紹了CefSharp如何進(jìn)行頁(yè)面的縮放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C#調(diào)用百度翻譯API實(shí)現(xiàn)一個(gè)翻譯功能

    C#調(diào)用百度翻譯API實(shí)現(xiàn)一個(gè)翻譯功能

    一直喜歡用Google Translate API進(jìn)行在線翻譯,但是服務(wù)越來(lái)越慢這篇文章,所以只能換一個(gè)了,主要給大家介紹了關(guān)于C#調(diào)用百度翻譯API實(shí)現(xiàn)一個(gè)翻譯功能的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 基于WPF實(shí)現(xiàn)一個(gè)簡(jiǎn)單的音頻播放動(dòng)畫控件

    基于WPF實(shí)現(xiàn)一個(gè)簡(jiǎn)單的音頻播放動(dòng)畫控件

    這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)一個(gè)簡(jiǎn)單的音頻播放動(dòng)畫控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-07-07
  • c# 圓形識(shí)別方案和直線識(shí)別方案的參考示例

    c# 圓形識(shí)別方案和直線識(shí)別方案的參考示例

    這篇文章主要介紹了c# 圓形識(shí)別方案和直線識(shí)別方案的實(shí)現(xiàn)示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • 自定義時(shí)間格式轉(zhuǎn)換代碼分享

    自定義時(shí)間格式轉(zhuǎn)換代碼分享

    自定義時(shí)間格式轉(zhuǎn)換,如"2012年5月14日"的日期字符串,大家參考使用吧
    2013-12-12
  • C#通過(guò)子窗體刷新父窗體的實(shí)現(xiàn)方法

    C#通過(guò)子窗體刷新父窗體的實(shí)現(xiàn)方法

    在一些軟件,比如,進(jìn)銷存管理系統(tǒng)中添加銷售單信息時(shí),每個(gè)銷售單都可能對(duì)應(yīng)多種商品,而且在向銷售單中添加商品時(shí),一般都是在新彈出的窗體中選擇商品,這時(shí)就涉及通過(guò)子窗體刷新父窗體的問(wèn)題,本文給大家介紹了C#通過(guò)子窗體刷新父窗體的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

抚远县| 乌什县| 阳城县| 容城县| 深水埗区| 固始县| 沙坪坝区| 泗水县| 宣武区| 岳普湖县| 获嘉县| 崇明县| 祁连县| 武宣县| 巧家县| 页游| 邹城市| 江口县| 策勒县| 班戈县| 黄平县| 隆安县| 河西区| 佛学| 江口县| 通海县| 右玉县| 时尚| 延川县| 桑植县| 建瓯市| 东丽区| 邛崃市| 宁陵县| 濉溪县| 新竹市| 湖北省| 长宁区| 剑阁县| 巴彦县| 淮滨县|