다음을 통해 공유


WebErrorStatus 열거형

정의

인증, 프록시 구성 및 대상 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 인증서 일반 이름이 웹 주소와 일치하지 않습니다.

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

제공된 호스트 이름을 resolve 수 없습니다.

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.GetStatus, Windows.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

적용 대상

추가 정보