我需要从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); }
WebBrowser
的Refresh
与Navigate
/ Navigate2
完全不同。 没有为Refresh刷新的NavigateComplete2
。 我不认为你可以得到刷新状态代码,除非你诉诸一些低级APP处理程序挂钩。 相关: Wpf WebBrowser刷新 。
你可以从LoadComplete()上的NavigationEventArgs获得WebResponse ,当刷新页面的时候这也会触发。