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

时间:2014-07-13 18:55:53

标签: c# windows winforms webbrowser-control http-status-codes

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

我正在使用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);
}

2 个答案:

答案 0 :(得分:1)

WebBrowser' RefreshNavigate / Navigate2完全不同。刷新没有NavigateComplete2被触发。我不认为你可以获得刷新的状态代码,除非你使用一些低级APP handler钩子。相关:Wpf WebBrowser Refresh

答案 1 :(得分:0)

您可以从LoadComplete()上的WebResponse获取NavigationEventArgs,这也应该在刷新页面时触发。