我需要从web浏览器加载页面获取HTTP状态代码,我结束了此解决方案:如何在WebBrowser控件中获取当前状态代码?
我使用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);
}
NavigateComplete2在没有错误时触发。所以用它来重置你的状态码。 –
使用这个我可以假设没有错误发生,但不能得到http状态码,因为它的参数是'object pDisp,ref object url',其中'pDsip'是一个'WebBrowser'实例(我们无法获得http状态代码没有我的'axbrowser_navigatorError()')和'url'是我们正在处理的url,对吧? – Jack
它看起来就像是WebBrowser的DocumentCompleted等价物...... – Jack