asp.net C#檢查URL是否有效的方法

字號(hào):


    這篇文章主要介紹了asp.net C#檢查URL是否有效的方法,需要的朋友可以參考下
    我們有時(shí)候需要對(duì)用戶輸入的網(wǎng)站(URL)進(jìn)行有效性檢查,
    代碼如下:
    function CheckUrl(str) {
    var RegUrl = new RegExp();
    RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_%&?/.=]+$");
    if (!RegUrl.test(str)) {
    return false;
    }
    return true;
    }
    不止從格式上,更要檢查用戶輸入的網(wǎng)址是否真正有效。檢查URL可以參考js正則表達(dá)式驗(yàn)證網(wǎng)址格式,檢查URL有效的方法有很多,例如你可以使用jQuery進(jìn)行檢查,
    本篇將給出一段使用C#判斷網(wǎng)址是否有效的代碼。
    下邊是檢查URL有效性的方法:
    代碼如下:
    private bool UrlCheck(string strUrl)
    {
    if (!strUrl.Contains("http://") && !strUrl.Contains("https://"))
    {
    strUrl = "http://" + strUrl;
    }
    try
    {
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
    myRequest.Method = "HEAD";
    myRequest.Timeout = 10000; //超時(shí)時(shí)間10秒
    HttpWebResponse res = (HttpWebResponse)myRequest.GetResponse();
    return (res.StatusCode == HttpStatusCode.OK);
    }
    catch
    {
    return false;
    }
    }
    使用時(shí),我們只需傳入U(xiǎn)rl即可進(jìn)行有效性檢查,使用這個(gè)方法時(shí)記得加上System.Net命名空間。
    代碼如下:
    if (!UrlCheck("http://www.jb51.net"))
    {
    //刪除操作
    }
    是的,在本站中用戶可以輸入自己的網(wǎng)址,但有的用戶不知道是為了測(cè)試還是什么,輸入了一眼就能看出是訪問(wèn)不了的鏈接。所以有必要對(duì)用戶輸入的網(wǎng)址做個(gè)檢查,不然無(wú)效鏈接太多的話會(huì)影響網(wǎng)站的權(quán)重,更重要的是過(guò)多的無(wú)效鏈接會(huì)影響其他用戶的體驗(yàn),因?yàn)檎l(shuí)也不想點(diǎn)擊一個(gè)無(wú)效的鏈接。
    可以參考jQuery Ajax,
    以下5個(gè)方法執(zhí)行一般Ajax請(qǐng)求的簡(jiǎn)短形式,在處理復(fù)雜的Ajax請(qǐng)求時(shí)應(yīng)該使用jQuery.ajax().
    1.load(url,[data],[callback])
    載入遠(yuǎn)程HTML文件代碼并插入至DOM中,默認(rèn)使用GET方式,傳遞參數(shù)時(shí)自動(dòng)轉(zhuǎn)換為POST方式。
    ◦url:要載入的遠(yuǎn)程url地址
    ◦data:發(fā)送至服務(wù)器的key/value 數(shù)據(jù)
    ◦callback:載入成功時(shí)的回調(diào)函數(shù)
    示例代碼如下:
    代碼如下:
    //無(wú)參數(shù)、無(wú)回調(diào)函數(shù)
    $("#showload").load("load.htm");
    //無(wú)回調(diào)函數(shù)
    $("#showload").load("load.htm", { "para": "para-value" });
    $("#showload").load("load.htm", { "para": "para-value" },
    function() {
    //處理
    })