WebClient.DownloadString (url), когда этот URL возвращает страницу 404, как я могу пропустить это? - PullRequest
3 голосов
/ 18 января 2012

Я использую WebClient.DownloadString (url) для загрузки веб-страницы, когда URL-адрес веб-страницы 404 останавливается и больше не работает.Я хочу пропустить эти страницы, когда у меня возникла эта ошибка.

, если URL-адрес страницы 404, загрузка не начинается.поэтому я не могу разобрать незагруженные данные ...

Ответы [ 2 ]

12 голосов
/ 18 января 2012

Вам придется поймать исключение и проверить на 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 голосов
/ 18 января 2012

Вы можете поместить свой код в блок Try...Catch и поймать WebException .Если вам нужен больший контроль над обработкой определенных ошибок, вы можете использовать свойство Status WebException, которое возвращает перечисление WebExceptionStatus .

...