Как я могу поймать страницу не может загрузить сообщение? - PullRequest
1 голос
/ 10 сентября 2010

Привет, я надеюсь, что кто-то может помочь, В общих чертах я пытаюсь остановить встроенный браузер, в моем приложении Windows Forms, перейти на страницу «Эта программа не может отобразить веб-страницу» и вместо этого отобразить мою собственную страницу ошибки.

Приложение C # - это веб-браузер, встроенный в мои Windows Forms, его цель - позволить пользователю нажимать на предоставленные кнопки, которые перемещают браузер к предварительно заданным URL-адресам WebService. Если служба не запущена на компьютере, то вместо браузера, сообщающего, что она не может быть загружена, мне нужно вместо этого перейти на свою пользовательскую страницу.

Я огляделся по сторонам и пока не смог найти решение, по-видимому, HttpStatusCodes - это путь, но я не знаю, как их использовать.

Фрагмент кода:

private void currentMachineToolStripMenuItem_Click(object sender, EventArgs e)
{
   webBrowser1.Navigate("http://localhost:2021/wsservice/status");
}

Как видите, на данный момент очень простая программа.

Ответы [ 4 ]

3 голосов
/ 10 сентября 2010

Вы можете попробовать это:

Private void WebBrowser1_NavigateError(Object sender, EventArgs e)
{
    WebBrowser1.Navigate( App.Path + "\retry.htm");
}
2 голосов
/ 10 сентября 2010

взято из этой ссылки -

Для этого вам понадобится HttpWebRequest и объект HttpWebResponse. этот. Создайте запрос HttpWebRequest с нужным URL, используя Метод WebRequest.Create (url). Затем используйте метод GetResponse (), чтобы получить HttpWebResponse. HttpWebResponse будет иметь код состояния, возвращенный из сервер. Это скажет вам, если URL существует или нет. 404 указывает «Страница не найдено ". 200 означает" Успех "и т. д.

http://msdn.microsoft.com/en-us/library/8y7x3zz2(vs.71).aspx

Также еще одна ссылка, которая может вам помочь - http://www.vcskicks.com/check-website.php

0 голосов
/ 07 апреля 2015

Вы также можете проверить URL возвращенного документа, найти адрес ресурса, который веб-браузер использует для отображения страницы с ошибкой:

if (webBrowser1.Document.Url.ToString().Contains("res://ieframe.dll/dnserrordiagoff.htm") )
    ...
0 голосов
/ 14 ноября 2012

Вы можете проверить содержимое страницы на наличие слова, которое указывает, что страница загружена неправильно

if(webBrowser1.Document.InnerHtml.Contains("error"))
...