【问题标题】:ASP.Net WepAPI - I can get results from Get Methods but I cannot PostASP.Net WepAPI - 我可以从 Get Methods 获得结果,但我不能发布
【发布时间】: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


【解决方案1】:

创建视图模型

public class ViewModel
{
 public string Num {get; set;}
 public string Reading {get; set;}
}

试试这个

[HttpPost()]
 public IHttpActionResult Post([FromUri] ViewModel model)
  {
       var num=model.Num;
        .....
}

更新

由于浏览器自动执行get调用,我推荐PO使用其他工具发帖。 Chrome的“Advanced Rest Client”被PO选中发帖,一切正常。

【讨论】:

  • 我试过这个,但我仍然得到错误:{“消息”:“请求的资源不支持 http 方法 'GET'。”}
  • @KristinVernon 您如何调用 Post 方法?你使用应用程序还是邮递员?你能发布一些代码吗?
  • 我从 VisualStudio 调试 API,我只是使用 url 进行 Post 调用
  • 您使用什么代码来拨打电话?默认情况下,从浏览器会被调用
  • 很高兴能为您提供帮助。请不要忘记接受答案,因为它很有帮助
猜你喜欢
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
相关资源
最近更新 更多