Мне нужно было получить код состояния 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);
}
object pDisp, ref object url
, гдеpDsip
— это экземплярWebBrowser
(где мы не можем получить код состояния http без моегоaxbrowser_navigatorError()
), аurl
— это URL-адрес, который мы повторно обрабатывать, не так ли? - person Jack   schedule 14.07.2014