我需要从WebBrowser中加载的页面获取HTTP状态码,我最终使用了以下解决方案:
我使用WebBrowser ActiveXInstance实例中的NavigateError事件。但是它不能很好地工作:只有在出现错误时(像方法名称所示)才能得到状态代码,如果页面无法加载并且用户wb.Refresh(),那么加载就会成功,而我只存储旧的HTTP状态错误代码,因为成功加载不会改变我的HTTP状态代码。我该如何解决这个问题?
我使用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);
}
object pDisp,ref object url
,其中pDsip
是一个WebBrowser
实例(在没有我的axbrowser_navigatorError()
的情况下无法获取HTTP状态码),而url
是我们正在处理的URL,对吗? - Jack