Как получить сообщение об ошибке от объекта HttpResponse в WebAPI?
у меня есть контроллер, который создает исключение из следующего кода со следующим сообщением:-
public HttpResponseMessage PutABook(Book bookToSave)
{
return Request.CreateErrorResponse(HttpStatusCode.Forbidden, "No Permission");
}
Я тестирую этот метод со следующим кодом: -
var response = controller.PutABook(new Book());
Assert.That(response.StatusCode,Is.EqualTo(HttpStatusCode.Forbidden));
Assert.That(response.Content,Is.EqualTo("No Permission"));
, но я получаю сообщение об ошибке, что контент не "без разрешения". Кажется, я не могу ответить на HttpError
либо получить содержимое сообщения "нет разрешения". Код состояния возвращается нормально. Просто пытаются получить message content
.
3 ответов
как вы поняли в своем комментарии, Вы можете использовать response.Content.ReadAsAsync<HttpError>()
или вы также можете использовать response.TryGetContentValue<HttpError>()
.
В обоих этих случаях содержимое проверяется на наличие типа ObjectContent
и значение извлекается из него.
вы можете попробовать следующие:
var errorContent = await response.Content.ReadAsAsync<HttpError>();
Assert.That(errorContent.Message,Is.EqualTo("No Permission"));