WebErrorStatus 枚举

定义

定义在涉及 Web 服务(例如身份验证、代理配置和目标 URI)的操作期间遇到的错误。

public enum class WebErrorStatus
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
enum class WebErrorStatus
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public enum WebErrorStatus
var value = Windows.Web.WebErrorStatus.unknown
Public Enum WebErrorStatus
继承
WebErrorStatus
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

字段

BadGateway 502

服务器充当网关或代理,并从上游服务器收到无效响应。

BadRequest 400

由于语法错误,无法满足请求。

CannotConnect 14

无法连接到目标。

CertificateCommonNameIsIncorrect 1

SSL 证书公用名与 Web 地址不匹配。

CertificateContainsErrors 3

SSL 证书包含错误。

CertificateExpired 2

SSL 证书已过期。

CertificateIsInvalid 5

SSL 证书无效。

CertificateRevoked 4

SSL 证书已被吊销。

Conflict 409

指示由于请求中的冲突而无法处理请求。

ConnectionAborted 9

连接已中止。

ConnectionReset 10

连接已重置。

Disconnected 11

连接已结束。

ErrorHttpInvalidServerResponse 8

服务器返回无效或无法识别的响应。

ExpectationFailed 417

服务器无法满足“预期请求标头”字段的要求。

Forbidden 403

服务器拒绝了请求。

Found 302

资源已找到,但在与请求中包含的资源不同的位置可用。

GatewayTimeout 504

服务器充当网关或代理,但未收到来自上游服务器的及时响应。

Gone 410

指示请求的资源不再可用,并且不再可用。

HostNameNotResolved 15

无法解析提供的主机名。

HttpsToHttpOnRedirection 13

已从安全位置重定向到不安全的位置。

HttpToHttpsOnRedirection 12

已从某个位置重定向到安全位置。

HttpVersionNotSupported 505

服务器不支持请求中使用的 HTTP 协议版本。

InsufficientRangeSupport 22

请求不支持 范围。

InternalServerError 500

在没有更具体的消息适合时给出的一般错误消息。

LengthRequired 411

请求未指定其内容的长度,这是请求的资源所需的。

MethodNotAllowed 405

请求是使用该资源不支持的请求方法发出的。

MissingContentLengthSupport 23

请求错误地调整了文件大小。

MovedPermanently 301

此请求和将来的所有请求都应定向到给定的 URI。

MultipleChoices 300

请求的 URL 表示需要进行较低级别的选择的高级分组。

NotAcceptable 406

请求的资源只能根据请求中发送的 Accept 标头生成不可接受的内容。

NotFound 404

找不到请求的资源,但将来可能会再次可用。

NotImplemented 501

服务器要么无法识别请求方法,要么无法满足请求。

NotModified 304

指示自上次请求以来未修改资源。

OperationCanceled 16

该操作已取消。

PaymentRequired 402

保留。

PreconditionFailed 412

服务器不满足请求者对请求施加的前提条件之一。

ProxyAuthenticationRequired 407

客户端必须先使用代理对自身进行身份验证。

RedirectFailed 17

请求重定向失败。

RequestedRangeNotSatisfiable 416

客户端已请求文件的一部分,但服务器无法提供该部分。

RequestEntityTooLarge 413

请求大于服务器愿意或能够处理的请求。

RequestTimeout 408

服务器等待请求时超时。

RequestUriTooLong 414

提供的 URI 长度超出了服务器可以处理的最大长度。

SeeOther 303

可以使用 GET 方法在另一 URI 下找到对请求的响应。

ServerUnreachable 6

服务器没有响应。

ServiceUnavailable 503

服务器当前不可用。

TemporaryRedirect 307

请求的资源暂时驻留在不同的 URI 下。

Timeout 7

连接已超时。

Unauthorized 401

身份验证失败或尚未提供凭据。

UnexpectedClientError 20

发生了意外的客户端错误。

UnexpectedRedirection 19

意外重定向了请求。

UnexpectedServerError 21

发生了意外的服务器端错误。

UnexpectedStatusCode 18

指示收到失败的意外状态代码。

Unknown 0

发生未知错误。

UnsupportedMediaType 415

请求实体具有服务器或资源不支持的媒体类型。

UseProxy 305

必须通过“位置”字段提供的代理访问请求的资源。

注解

WebErrorStatus 值由 Windows.Web.WebError.GetStatusWindows.Networking.WebSocketError.GetStatusWindows.Networking.BackgroundTransfer.GetStatus 返回。

此示例演示如何使用 WebErrorStatus 根据错误类型显示不同的错误消息。 在此示例中,WebErrorStatus 值由 Windows.Networking.WebSocketError.GetStatus 返回。

using Windows.Web;
using Windows.Networking.Sockets;

// Pointer back to the main page. Needed to call methods in MainPage such as NotifyUser()
MainPage rootPage = MainPage.Current;

WebErrorStatus status = WebSocketError.GetStatus(ex.GetBaseException().HResult);

if (status == WebErrorStatus.CannotConnect ||
    status == WebErrorStatus.NotFound || 
    status == WebErrorStatus.RequestTimeout)
{
    rootPage.NotifyUser("Cannot connect to the server", NotifyType.ErrorMessage);
}
else
{
    rootPage.NotifyUser("Error: " + status, NotifyType.ErrorMessage);
}
// Pointer back to the main page. Needed to call methods in MainPage such as NotifyUser().
m_rootPage = MainPage::Current();

Windows::Web::WebErrorStatus status{ Windows::Networking::Sockets::WebSocketError::GetStatus(exception.to_abi()) };

if (status == Windows::Web::WebErrorStatus::CannotConnect ||
    status == Windows::Web::WebErrorStatus::NotFound ||
    status == Windows::Web::WebErrorStatus::RequestTimeout)
{
    m_rootPage.NotifyUser(L"Cannot connect to the server", NotifyType::ErrorMessage);
}
else
{
    m_rootPage.NotifyUser(std::wstring(L"Error: ") + exception.message().c_str(), NotifyType::ErrorMessage);
}
using namespace Windows::Web;
using namespace Windows::Networking::Sockets;

// Pointer back to the main page. Needed to call methods in MainPage such as NotifyUser()
rootPage = MainPage::Current;

WebErrorStatus status = WebSocketError::GetStatus(exception->HResult);

if (status == WebErrorStatus::CannotConnect || 
    status == WebErrorStatus::NotFound || 
    status == WebErrorStatus::RequestTimeout)
{
    rootPage->NotifyUser("Cannot connect to the server", NotifyType::ErrorMessage);
}
else
{
    rootPage->NotifyUser("Error: " + status.ToString(), NotifyType::ErrorMessage);
}

版本历史记录

Windows 版本 SDK 版本 增值
1709 16299 InsufficientRangeSupport
1709 16299 MissingContentLengthSupport

适用于

另请参阅