Обработка ошибок 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 для конечной точки Техническое сообщество.