Публикация с использованием HttpClient & Read HttpResponseMessage status - PullRequest
0 голосов
/ 21 октября 2018

Я отправляю сообщение в API, используя HttpClient и получаю обратно HttpResponseMessage.Я читаю код состояния из ответа, но он всегда 200

Отправка:

var json = JsonConvert.SerializeObject(loginDto);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.PostAsync("http://localhost:57770/api/Account/Login", stringContent);

Я отвечаю из API HttpResponseMessage:

return new HttpResponseMessage(HttpStatusCode.Unauthorized);

Но когда я читаю response, это всегда 200

Как мне этого достичь?

1 Ответ

0 голосов
/ 21 октября 2018

Asp.Net Core больше не распознает HttpResponseMessage как часть конвейера.Это означает, что он будет обрабатываться как любая другая возвращаемая модель и сериализироваться как контент.Следовательно, статус 200 OK.

Действие контроллера API должно возвращать IActionResult полученный результат.

[HttpPost]
public IActionResult SomeAction(...) {

    //...

    return StatusCode((int)HttpStatusCode.Unauthorized); //401

    //...
}

Или просто использовать

return Unauthorized(); 

, который получен из StatusCodeResult и используется для замены кода, показанного выше.

Ссылка ControllerBase.Unauthorized .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...