WebClient.DownloadString(url) when this url returns a 404 page, how can i skip this?

前端 未结 2 966
渐次进展
渐次进展 2020-12-10 09:41

I\'m using WebClient.DownloadString(url) to download a web page, when a url a 404 web page it stops and doesn\'t work anymore. I want to skip these pages when I got this fau

相关标签:
2条回答
  • 2020-12-10 09:56

    You can put your code in a Try...Catch block and catch a WebException. If you want more control on how to handle specific errors, you can use the WebException's Status property which returns a WebExceptionStatus enumeration.

    0 讨论(0)
  • 2020-12-10 09:59

    You will have to catch the Exception and test for a 404:

    try
    {
        string myString;
        using (WebClient wc = new WebClient())
            myString= wc.DownloadString("http://foo.com");
    
    }
    catch (WebException ex)
    {
        if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
        {
            var resp = (HttpWebResponse)ex.Response;
            if (resp.StatusCode == HttpStatusCode.NotFound) // HTTP 404
            {
                //the page was not found, continue with next in the for loop
                continue;
            }
        }
        //throw any other exception - this should not occur
        throw;
    }
    
    0 讨论(0)
提交回复
热议问题