我需要从WebBrowser中加载的页面获取http状态代码,最终得到了以下解决方案:

我正在使用NavigateError WebBrowser实例中的ActiveXInstance事件。但是它不能正常工作:如果页面无法加载且用户wb.Refresh()它并加载正常,并且只有已存储旧的http状态错误代码,因为成功加载不会更改我的http状态代码。我该如何解决?

public doSomething()
{
    SHDocVw.WebBrowser axBrowser = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
    axBrowser.NavigateError += new SHDocVw.DWebBrowserEvents2_NavigateErrorEventHandler(axbrowser_navigatorError);
}

public void axbrowser_navigatorError(object pDIsp, ref object URL, ref object frame, ref object statusCode, ref bool Cancel)
{
    statuscodeLabel.Text = statusCode.ToString();
    int.TryParse(statusCode.ToString(), out httpCode);
}

最佳答案

WebBrowserRefreshNavigate/Navigate2完全不同。没有为刷新触发NavigateComplete2。我认为除非您使用一些较低级别的APP handler挂钩,否则您无法获取“刷新”的状态代码。相关:Wpf WebBrowser Refresh

10-07 19:19
查看更多