我创建了一个Web API 2项目并按照以下步骤配置了OData4控制器:Web API 2 Odata 4 Tutorial
然而,每当我尝试使用Postman进行简单的POST(使用JSON主体创建实体)时,我会收到以下错误:
请求的资源不支持http方法'POST'。
控制器中的POST操作如下所示:
public async Task<IHttpActionResult> Post(Product product)
{
if(!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Products.Add(product);
await db.SaveChangesAsync();
return Created(product);
}
我在请求正文中发布的JSON如下:
{
"Id":"lewisblack",
"Name":"Lewis",
"Price":"Black",
"Category":"Category 1"
}
我还在请求中包含了以下标题:
OData-Version:4.0
OData-MaxVersion:4.0
Content-Type:application / json
我在这里错过了什么吗?
更新:找出问题所在。我使用的是不正确的URI。
答案 0 :(得分:1)
没有太多信息可以继续:
我怀疑你在相关的控制器上没有PostMethod。
另外,还有其他一些事情要考虑:
当您发布对象时,HTTP响应代码(如果上面没有帮助)是什么。 (使用像提琴手这样的工具)。提示,如果您的http响应是“错误请求”,那么您的数据可能无效以继续执行操作。
答案 1 :(得分:0)
我错误地使用了http://localhost:/用于POST而不是https://localhost:/ Products