WebErrorStatus 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인증, 프록시 구성 및 대상 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.GetStatus 및 Windows.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 |