IHTTPActionResult Ok<T>(T Content) gives HTTP/1.1 406
本文关键字:gives HTTP Ok lt gt IHTTPActionResult Content | 更新日期: 2023-09-27 18:19:06
当我写返回OK()然后它给我201 HTTPStatusCde。然而,当我试图得到一个响应对象作为回报,它给了我406错误。这里var response是我的自定义模式,我想要一个响应
public IHttpActionResult Post(Order order)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
var response = this._orderRepository.AddReturnOrder(order);
if (response != null)
return Ok(response);
return NotFound();
}
catch(Exception ex)
{
return InternalServerError(ex);
}
}
确保返回的对象可序列化为JSON或XML。否则,控制器方法将无法提供根据HTTP状态码定义所指示的Accept标头可接受的内容:
406不可接受被请求的资源只能根据请求中发送的Accept标头生成不可接受的内容。
由于rep低,我无法评论其他信息,您能给我们您试图在响应中返回的对象模型吗?
首先,您希望通过"var response"返回什么?请注意,对于OData协议,POST请求返回"201 Created"或"204 no content"。如果响应代码是201,则响应体必须包含创建的资源。OData Web API中POST的标准方式是:
// POST odata/Foos
public IHttpActionResult Post(Foo foo)
{
if(!ModelState.IsValid)
{
return BadRequest(ModelState);
}
FakeData.Instance.Foos.Add(foo);
return Created(foo);
}