繁体   English   中英

以错误的请求返回 Json

[英]Return Json on a bad request

所以 OK(value) 返回带有 application/json 标头的格式化 json。 但是 BadRequest() 没有。 如果请求是一个应用程序/json,即使它是一个错误的请求,响应也不应该是那样的吗?

[HttpPost]
public IActionResult Post([FromBody]Resolution value)
{
    using (_ctx)
    {
        try
        {
            if (ValidateResolution(value.Size))
            {
                _ctx.Resolution.Add(value);
                _ctx.SaveChanges();
                return Ok(value);
            }
            return BadRequest("{ \"message\": \"hello\" }");
        } catch (Exception) {
            return BadRequest();
        }
    }
}

您正在做的是将一个字符串传递给BadRequest() ,这使您的 Action 返回内容类型为纯文本的响应。

如果您想返回一个响应类型为application/json的 JSON 对象,那么您应该将一个不是字符串的对象传递给BadRequest() 你甚至可以传递一个匿名对象来快速创建一个 JSON 对象,如下所示:

return BadRequest(new { message = "bad request"});

PS:正确的 JSON 格式是{"field_name" : "field_value"} (如果值的类型是数字、布尔值、空值,则不需要引号)。 因此,根据您所写的内容,即使您将 content-type 更改为application/json ,也无法正确解析它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM