如何在WebBrowser控件中获取当前状态码?

我需要从WebBrowser加载的页面获取http状态代码,我最终得到了这个解决scheme:

我从WebBrowser ActiveXInstance实例使用NavigateError事件。 但是,它不能正常工作:如果页面无法加载,并且用户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完全不同。 没有为Refresh刷新的NavigateComplete2 。 我不认为你可以得到刷新状态代码,除非你诉诸一些低级APP处理程序挂钩。 相关: Wpf WebBrowser刷新 。

你可以从LoadComplete()上的NavigationEventArgs获得WebResponse ,当刷新页面的时候这也会触发。