有没有办法在 HttpRequest 中同时返回 StatusCode 和 Content?

Posted

技术标签:

【中文标题】有没有办法在 HttpRequest 中同时返回 StatusCode 和 Content?【英文标题】:Is there a way to return both StatusCode and Content in a HttpRequest? 【发布时间】:2021-04-06 14:08:34 【问题描述】:

我的应用中有一个登录页面,它向 WebAPI 发出请求,当凭据与数据库记录匹配时,该请求应返回 StatusCode Accepted,但我也希望它返回一些有关用户的数据,以便在应用程序中进一步使用,因此我不必在每次需要时都请求它们。有没有办法通过单个 return 语句同时返回 StatusCode 和数据库记录中的某些内容?

返回 StatusCode 的 API 部分如下所示:

reader = checkCredentials.ExecuteReader();
            reader.Read();
            if (reader.HasRows)
            
                reader.Close();
                return Accepted();
            
            else
            
                reader.Close();
                return Unauthorized();
            

我怎样才能改变它?

【问题讨论】:

【参考方案1】:
return new HttpStatusCodeResult(HttpStatusCode.Accepted, "yourdata");

Response.StatusCode = HttpStatusCode.Accepted;
return Content("yourdata");

【讨论】:

@Wurfv_ 202 表示该请求只是被接受而不执行,在您的情况下它也已执行,因此您应该返回 200 作为成功执行结果。 + 我喜欢在状态码位置添加一点 System.Net.HttpStatusCode 枚举以提高可读性 不应该只是没有状态码的正常响应吗?因为总是会返回 200。

以上是关于有没有办法在 HttpRequest 中同时返回 StatusCode 和 Content?的主要内容,如果未能解决你的问题,请参考以下文章

HttpRequest 获取上传文件,超过了最大限制

doFilter() 重写方法 httpRequest.getUserPrincipal() 总是返回 NullPoint 异常

如何使用HttpRequest对象

如何使用HttpRequest对象

确定主机是解析 DNS 名称还是 IP

Django中视图总结[urls匹配,HttpRequest对象,HttpResponse对象,对象序列化接受及案例]