#asp.net-core-webapi #httpresponse #http-status-codes
#asp.net-core-webapi #httpresponse #http-status-codes
Вопрос:
Я просто пытаюсь отправить ответное сообщение 404 обратно из вызова API, однако сталкиваюсь с некоторыми проблемами.
У меня есть следующая функция, которая возвращает ActionResult:
private static ActionResult StatusResult(HttpStatusCode statusCode, string reason) => new ContentResult
{
StatusCode = (int)statusCode,
Content = $"Status Code: {(int)statusCode} - {statusCode} | {reason}",
ContentType = "application/json",
};
и назовите это так:
return StatusResult(HttpStatusCode.NotFound, "ID not found.");
Он возвращается обратно клиенту, однако StatusCode по-прежнему равен 200, а не 404. Есть ли простой способ исправить это?
Пример ответа:
Комментарии:
1. Я попробовал ваш код, и для меня он возвращает правильный statuscode (404). Я использовал ASP.NET 5 Веб-API.
2. Мы можем получить правильный код состояния, где вы вызываете этот метод
StatusResult
?3. Спасибо за вашу помощь, в конце концов я изменил объект HttpContext и вернул то, что решило мою проблему. Например. context.Response. ContentType = «application / json»; context.Response. StatusCode = (int)statuscode;
Ответ №1:
Это может работать не для всех, но в итоге я отредактировал объект HttpContext напрямую и вернул его обратно клиенту.
Который выдал правильные коды состояния в качестве ответа.
context.Response.ContentType = "application / json";
context.Response.StatusCode = (int)statuscode;