Поделиться через


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

Не удалось разрешить предоставленное имя узла.

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

Ответ на запрос можно найти в другом URI с помощью метода GET.

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

Применяется к

См. также раздел