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


Обработка ошибок REST API

Ответы на ошибки HTTP делятся на две категории:

  • Ошибка клиента (уровень 400 кода) — клиент отправил недопустимый запрос или запрос не соответствует определениям.
  • Ошибка сервера (уровень 500) — сервер временно не выполнил запрос или произошла ошибка сервера. Попробуйте отправить HTTP-запрос еще раз.

Коды ошибок, перечисленные в следующей таблице, могут быть возвращены операцией с любыми API Microsoft Defender для конечной точки.

  • В дополнение к коду ошибки каждый ответ об ошибке содержит сообщение об ошибке, которое может помочь устранить проблему.
  • Сообщение представляет собой произвольный текст, который можно изменить.
  • В нижней части страницы можно найти примеры ответов.

Область применения:

Хотите попробовать Defender для конечной точки? Зарегистрироваться для бесплатной пробной версии.

Код ошибки Код состояния HTTP Сообщение
BadRequest BadRequest (400) Общее сообщение об ошибке \"Неправильный запрос\" (Bad Request).
ODataError BadRequest (400) Недопустимый запрос URI OData (указана конкретная ошибка).
InvalidInput BadRequest (400) Недопустимые входные данные {the invalid input}.
InvalidRequestBody BadRequest (400) Недопустимый текст запроса.
InvalidHashValue BadRequest (400) Недопустимое хэш-значение {the invalid hash}.
InvalidDomainName BadRequest (400) Недопустимое доменное имя {the invalid domain}.
InvalidIpAddress BadRequest (400) Недопустимый IP-адрес {the invalid IP}.
InvalidUrl BadRequest (400) Недопустимый URL-адрес {the invalid URL}.
MaximumBatchSizeExceeded BadRequest (400) Превышен максимальный размер пакета. Получено: {batch size received}, разрешено: {batch size allowed}.
MissingRequiredParameter BadRequest (400) Отсутствует параметр {the missing parameter}.
OsPlatformNotSupported BadRequest (400) Платформа ОС {клиентская платформа ОС} не поддерживается для этого действия.
ClientVersionNotSupported BadRequest (400) {The requested action} поддерживается в версии клиента {supported client version} и выше.
Не авторизован (Unauthorized) Не авторизовано (401) Не авторизовано (недопустимый или просроченный заголовок авторизации).
Запрещено Запрещено (403) Запрещено (допустимый маркер, но недостаточно разрешений для действия).
DisabledFeature Запрещено (403) Функция клиента не включена.
DisallowedOperation Запрещено (403) {the disallowed operation and the reason}.
NotFound Не найдено (404) Общее сообщение об ошибке \"Не найдено\".
ResourceNotFound Не найдено (404) Ресурс {запрошенный ресурс} не найден.
TooManyRequests Слишком много запросов (429) Ответ представляет собой достижение предельной квоты либо по количеству запросов, либо по ЦП.
InternalServerError Внутренняя ошибка сервера (500) (Нет сообщения об ошибке, повторите операцию.)

Регулирование

Http-клиент может получить ошибку "Слишком много запросов (429)", если количество HTTP-запросов за заданный период времени превышает допустимое число вызовов на API.

HTTP-клиент должен отложить повторную отправку дальнейших HTTPS-запросов, а затем отправить их в соответствии с ограничениями скорости. Retry-After в заголовке ответа, указывающее время ожидания (в секундах) перед выполнением нового запроса

Игнорируя ответ 429 или пытаясь повторно отправить HTTP-запросы за более короткий промежуток времени, возвращается код ошибки 429.

Параметры основного текста чувствительны к регистру

В настоящее время параметры отправленного текста чувствительны к регистру.

Если возникает ошибка InvalidRequestBody или MissingRequiredParameter, причина может заключаться в неправильном использовании буквы верхнего или нижнего регистра.

Просмотрите страницу документации по API и убедитесь, что отправленные параметры соответствуют применимому примеру.

Идентификатор запроса корреляции

Каждый ответ об ошибке содержит уникальный параметр идентификатора для отслеживания.

Имя свойства этого параметра — «цель».

При обращении к нам по поводу ошибки присоединение этого идентификатора помогает найти первопричину проблемы.

Примеры

{
    "error": {
        "code": "ResourceNotFound",
        "message": "Machine 123123123 was not found",
        "target": "43f4cb08-8fac-4b65-9db1-745c2ae65f3a"
    }
}
{
    "error": {
        "code": "InvalidRequestBody",
        "message": "Request body is incorrect",
        "target": "1fa66c0f-18bd-4133-b378-36d76f3a2ba0"
    }
}

Совет

Хотите узнать больше? Engage с сообществом Microsoft Security в нашем техническом сообществе: Microsoft Defender для конечной точки Техническое сообщество.