【发布时间】:2014-07-13 18:55:52
【问题描述】:
我需要从 WebBrowser 中加载的页面获取 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);
}
【问题讨论】:
-
NavigateComplete2 在没有错误时触发。所以用它来重置你的状态码。
-
使用这个我可以假设没有发生错误但无法获得http状态代码,因为它的参数是
object pDisp, ref object url,其中pDsip是一个WebBrowser实例(我们无法获得没有我的axbrowser_navigatorError()) 和url的http 状态代码是我们正在处理的url,对吧? -
它看起来就像是 WebBrowser 的 DocumentCompleted 等价物......
标签: c# windows winforms webbrowser-control http-status-codes