我正在使用Awesomium创建无头浏览器。我希望浏览器返回网络错误代码,所以我知道它是如何/为什么中断的。
using (WebSession session = WebCore.CreateWebSession(new WebPreferences() { CustomCSS = "::-webkit-scrollbar { visibility: hidden; }" }))
{
using (WebView browserTab = WebCore.CreateWebView(1100, 600, session))
{
Console.WriteLine($"Starting WebCore v{WebCore.Version}");
BadExample(browserTab, baseURL);
}
}
static void BadExample(WebView browser, Uri url) {
browser.Source = (url + "/anyhing").ToUri();
browser.LoadingFrameComplete += (sender, returnFrame) =>
{
//NetError Code
};
}
如何使用enum NetError返回我想要的值?
答案 0 :(得分:1)
您应该订阅事件IWebView.LoadingFrameFailed
(在您的情况下为浏览器)。
只要页面上可以有很多框架,事件就会在每个框架中触发。下面是我在项目中使用的代码段。
private void ViewOnLoadingFrameFailed(object sender, LoadingFrameFailedEventArgs e)
{
if (e.IsMainFrame)
{
var error = (NetError) e.ErrorCode;
Logger.ErrorFormat("main frame loading failed: {0}-{1}", e.ErrorCode, e.ErrorDescription);
}
else
{
Logger.WarnFormat("frame #{0} loading failed: {1} - {2}", e.FrameId, e.ErrorCode, e.ErrorDescription);
}
}