![](/img/trans.png)
[英]How to return a IHttpActionResult with Http status code 200 and pass in a memory stream in the http response
[英]How to add "code" in Response Body of IHttpActionResult return BadRequest(Message)
我返回 BadRequest("Failed Invalid Product Id"),它返回响应代码 400 和响应正文
{
"error": {
"code": "",
"message": "Failed Invalid Product Id"
}
}
如何在响应正文中发送响应代码 400 以便我得到响应正文,例如:
{
"error": {
"code": 400,
"message": "Failed Invalid Product Id"
}
}
你可以做这样的事情,而不用测试它:
return Content((HttpStatusCode)400, "Failed Invalid Product Id");
如果您真的想要定制的方式来做到这一点,那么您需要使用您自己的类来扩展IHttpActionResult
实现,例如以下示例,其灵感来自此链接:
public class ErrorResult : IHttpActionResult
{
private readonly Error _error;
private readonly HttpRequestMessage _request;
public ErrorResult(Error error, HttpRequestMessage request)
{
_error = error;
_request = request;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var err = new Error()
{
Code = _error.Code,
Message = _error.Message
};
var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new ObjectContent<Error>(err, new JsonMediaTypeFormatter()),
RequestMessage = _request
};
return Task.FromResult(response);
}
}
public class Error
{
public string Code { get; set; }
public string Message { get; set; }
}
然后使用它:
var err = new Error()
{
Code = "400",
Message = "Failed Invalid Product Id"
};
return new ErrorResult(err, Request);
这将错误返回:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.