2017-07-10 2 views
0

J'utilise la méthode suivante pour vérifier si une URL existe ou est valide.Vérification de la validité de l'URL -404/Non trouvé

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; 
     } 
    } 
} 

Mon approche est-elle correcte? Comment afficher le statut d'une URL cochée par exemple: 404, Success etc à l'utilisateur?

conseils .. S'il vous plaît

+3

Vous devez regarder le code d'état exposé par un WebException: double possible de [code d'état de réponse Web] (https://stackoverflow.com/questions/15289440/web-response-status-code) –

+0

Vous devriez probablement également inclure un en-tête utilisateur-agent crédible. –

+0

@AlexK. Pourriez-vous l'ajouter comme réponse? – max

Répondre

0

Voici votre question de réponse.

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

J'ai besoin de message d'erreur spécifique ... – max

+0

un message spécifique dépend de vos besoins. –