WebView2:服务器端错误对应导航事件状态及HTTP状态码问询
1. 发生服务器端错误时,WebView2的NavigationCompleted事件会返回什么状态?
当发生服务器端错误(如HTTP 4xx、5xx类状态码)时,WebView2的NavigationCompleted事件会将IsSuccess属性设为false,WebErrorStatus会根据具体错误类型返回对应枚举值,并非统一状态。
2. 该状态是否为COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN?若是,能否通过ICoreWebView2NavigationCompletedEventArgs2获取HTTP状态码?
大部分服务器端错误不会返回COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN,只有当错误无法匹配到预定义的WebErrorStatus枚举值时,才会返回该未知状态。
若返回的是COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN,可以通过ICoreWebView2NavigationCompletedEventArgs2接口的HttpStatusCode属性获取具体的HTTP状态码——该属性专门用于返回标准HTTP状态码,不受WebErrorStatus是否为未知状态的限制。
3. 对于状态描述中提及的特定错误码(如401、407),情况又是怎样的?
像401(未授权)、407(需要代理授权)这类特定HTTP状态码,WebView2会直接映射到对应的WebErrorStatus枚举值:
- 401对应
COREWEBVIEW2_WEB_ERROR_STATUS_UNAUTHORIZED - 407对应
COREWEBVIEW2_WEB_ERROR_STATUS_PROXY_AUTHENTICATION_REQUIRED
此时NavigationCompleted事件的IsSuccess属性为false,同时你也可以通过ICoreWebView2NavigationCompletedEventArgs2.HttpStatusCode获取精确的401、407数值。
内容的提问来源于stack exchange,提问作者O'Rooney
相关产品推荐
相关产品推荐

