2017-07-10 128 views
0

我使用以下方法檢查URL是否存在或有效。檢查URL是否有效-404/Not Found

class MyClient : WebClient 
{ 
    public bool HeadOnly { get; set; } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest req = base.GetWebRequest(address); 

     if (HeadOnly && req.Method == "GET") 
     { 
      req.Method = "HEAD"; 
     } 
     return req; 
    } 
} 

private static Boolean CheckURL(string url) 
{ 
    using (MyClient myclient = new MyClient()) 
    { 
     try 
     { 
      myclient.HeadOnly = true; 
      // fine, no content downloaded 
      string s1 = myclient.DownloadString(url); 
      return true; 
     } 
     catch (Exception error) 
     { 
      return false; 
     } 
    } 
} 

我的方法是否正確?如何顯示選中的URL的狀態例如:404,成功等等給用戶?

請指教..

+3

你需要看看由引發WebException暴露的狀態代碼:的[網絡響應狀態代碼(https://stackoverflow.com/questions/15289440/web-response-status-code) –

+0

可能的複製你應該也可以包含一個可信的用戶代理標題。 –

+0

@AlexK。你介意添加它作爲答案.. – max

回答

0

這是你的問題。

public static void isURLExist(string url) 
    { 
     try 
     { 
      WebRequest req = WebRequest.Create(url); 

      WebResponse res = req.GetResponse(); 

      Console.WriteLine("Url Exists"); 
     } 
     catch (WebException ex) 
     { 
      Console.WriteLine(ex.Message); 
      if (ex.Message.Contains("remote name could not be resolved")) 
      { 
       Console.WriteLine("Url is Invalid"); 
      } 
     } 
    } 
+0

我需要特定的錯誤消息... – max

+0

特定的消息取決於您的要求。 –