【问题标题】:Receive error "The requested resource does not support http method 'GET'" when update更新时收到错误“请求的资源不支持 http 方法 'GET'”
【发布时间】:2017-10-31 21:54:55
【问题描述】:

我正在构建一个 API。但我收到以下错误。

请求的资源不支持http方法'GET'

我的请求是 HTTP PUT,我正在尝试更新我的数据库。我已经搜索了很多天,但我找不到答案。以下是我的请求代码。请帮我。提前致谢。 request

控制器中的代码

    [HttpPut]
    public void CGNATObjUpdate(int ID)
    {
        Library.Instances.Value.CGNATObjUpdate(ID);

    }

【问题讨论】:

  • 浏览器默认执行GET,API目前不支持(根据您的代码)使用浏览器中的开发者工具(如果支持)构造PUT请求或使用外部像 Postman 或 Fiddler 这样的工具来构造对 API 的有效请求

标签: c# asp.net asp.net-mvc asp.net-web-api asp.net-web-api-routing


【解决方案1】:

您还需要发送 PUT 请求。 [HttpPut] 仅允许为 PutRequests 触发您的方法,但在您的示例中,您只需将链接放入浏览器和这个简单的 GET 请求。尝试使用 Postman 之类的东西来发送正确的请求。

另一种方法是检查您的控制器是否允许按名称触发操作,为此您需要为您的控制器配置路由。只需设置

    [Route("api/[controller]/[action]")]
    public class CGNATUpdateApiController : Controller
    {

    }

现在你可以通过名字来调用Action,否则你将无法通过名字来调用Controller action,你需要调用Controller:

/api/CGNATUpdateApi?ID=3

只要使用正确的方法 (PUT),它就会调用控制器中的第一个 PUT 方法。

【讨论】:

  • 首先,感谢您的回复。我尝试使用 PostMan,这是错误:“无法得到任何响应”
  • 检查路由然后...也请提供完整的课程以供将来解决问题
猜你喜欢
  • 2017-12-15
  • 2012-09-27
  • 2014-01-28
  • 1970-01-01
  • 2014-12-16
  • 2015-10-08
  • 2013-07-31
  • 2017-10-17
  • 2013-03-05
相关资源
最近更新 更多