【发布时间】:2021-10-03 18:02:42
【问题描述】:
我的 API 包含 2 个 Get 方法和 1 个 POST。 2 Gets 工作,但 POST 返回此消息:
{"Message":"请求的资源不支持http方法'GET'。"}
这些是我的方法:
[HttpGet]
public IEnumerable<tblMetrHist> Get(string accntnum)
{
...
}
[HttpGet]
public IEnumerable<CustomerInfo> GetCustomer(string accntnum)
{
...
}
[HttpPost]
public IHttpActionResult Post([FromUri] string num, [FromUri] string reading)
{
using (CustomerEntities entities = new CustomerEntities())
{
entities.tbl1.Add(new tbl1()
{
Number = num,
Reading = reading
});
entities.SaveChanges();
}
return Ok();
}
我的路线很简单:
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}"
);
所以我不确定如何让 API 将该方法识别为“发布”而不是“获取”。请帮忙?
【问题讨论】:
-
您用于获取和发布的网址是什么?你使用的是什么版本的 MVC?
-
您是使用 HTTP url 还是 HTTPS url 发布数据?试试下面的链接。stackoverflow.com/questions/40640317/…
-
@Serge MVC 是:newVersion="5.2.7.0" 至于网址,它们是 https..api/Data/Get?num={num}, https..api/Data/GetCustomer? num={num} 和 https..api/Data/Post?num={num}&reading={reading}。就像我说的两个 Gets work 但不是 Post,它给了我我在 OP 中输入的信息
-
@ChinmayT 始终在 https
标签: c# asp.net api rest asp.net-web-api