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
,用于简写以替换上面显示的代码
参考资料