我如何抓住页面无法加载消息?

时间:2010-09-10 10:53:35

标签: c# .net winforms webbrowser-control

嗨,我希望有人可以提供帮助, 在基本术语中,我试图在我的Windows窗体应用程序中停止嵌入式浏览器,导航到“此程序无法显示网页”页面,而是显示我自己的错误页面。

C#应用程序是嵌入在我的Windows窗体中的Web浏览器,其目的是允许用户单击提供的按钮,将浏览器导航到预定义的WebService URL。如果服务没有在计算机上运行,​​那么而不是浏览器说它无法加载我需要导航到我的自定义页面。

我环顾四周,但现在找不到解决方案显然没有运气HttpStatusCodes是一种方法,但我不知道如何使用它们。

代码段:

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

如您所见,目前非常简单的程序。

4 个答案:

答案 0 :(得分:3)

你可以试试这个:

Private void WebBrowser1_NavigateError(Object sender, EventArgs e)
{
    WebBrowser1.Navigate( App.Path + "\retry.htm");
}

答案 1 :(得分:2)

取自link -

您需要使用HttpWebRequest和HttpWebResponse对象来完成 这个。使用所需的URL创建带有所需URL的HttpWebRequest WebRequest.Create(url)方法。然后使用GetResponse()方法获取 HttpWebResponse。 HttpWebResponse将返回从中返回的状态代码 服务器。这将告诉您URL是否存在。 404表示“Page 没找到。“200表示”成功。“等等。

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

另一个可能对您有帮助的链接 - http://www.vcskicks.com/check-website.php

答案 2 :(得分:0)

您可以检查页面内容以查找表明页面未正确加载的单词

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

答案 3 :(得分:0)

您也可以检查返回的文档网址,找到webBrowser用来显示错误页面的资源地址:

if (webBrowser1.Document.Url.ToString().Contains("res://ieframe.dll/dnserrordiagoff.htm") )
    ...