共用方式為


WebErrorStatus 列舉

定義

定義涉及 Web 服務之作業期間發生的錯誤,例如驗證、Proxy 組態和目的地 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

伺服器做為閘道或 Proxy,並收到來自上游伺服器的無效回應。

BadRequest 400

因為語法不正確,所以無法滿足要求。

CannotConnect 14

無法連線至目的地。

CertificateCommonNameIsIncorrect 1

SSL 憑證一般名稱與網址不符。

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

伺服器做為閘道或 Proxy,且未收到來自上游伺服器的及時回應。

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

用戶端必須先向 Proxy 驗證本身。

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

要求的資源必須透過 [位置] 欄位所提供的 Proxy 來存取。

備註

Windows.Web.WebError.GetStatusWindows.Networking.WebSocketError.GetStatusWindows.Networking.BackgroundTransfer.GetStatus會傳回 WebErrorStatus 值。

此範例示範如何使用 WebErrorStatus,根據錯誤類型顯示不同的錯誤訊息。 在此範例中, Windows.Networking.WebSocketError.GetStatus 會傳回 WebErrorStatus值。

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

適用於

另請參閱