C# 使用HttpClient&;读取HttpResponseMessage状态

C# 使用HttpClient&;读取HttpResponseMessage状态,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我正在使用HttpClient发布到一个API,并返回HttpResponseMessage。 我正在阅读回复中的状态代码,但我认为它总是200 发布: var json = JsonConvert.SerializeObject(loginDto); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); var client = new HttpClient(); var response

我正在使用
HttpClient
发布到一个API,并返回
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);
但是当我读到
响应时,它总是
200


如何实现这一点?

Asp.Net核心不再将
HttpResponseMessage
识别为管道的一部分。这意味着它将被视为任何其他返回的模型,并序列化为内容。因此,200 OK状态

API控制器操作应返回导出结果

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

    //...

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

    //...
}
或者只是使用

return Unauthorized(); 
它派生自
StatusCodeResult
,用于简写以替换上面显示的代码

参考资料