WebErrorStatus 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義涉及 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.GetStatus、Windows.Networking.WebSocketError.GetStatus和Windows.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 |