【问题标题】:The requested resource does not support http method 'GET' but using 'POST'请求的资源不支持 http 方法 'GET' 但使用 'POST'
【发布时间】:2021-12-09 13:46:52
【问题描述】:

我的路线配置正确,因为我已经在其他问题中看到了它。 Web API 使用MapHttpRoute,它使用System.Web.Http。我用[System.Web.Http.HttpPost] 装饰了我的操作,但它似乎不起作用,它返回错误消息:

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

我尝试了这个解决方案[System.Web.Http.AcceptVerbs("GET", "POST")],正如我在同一个问题上看到的那样。 The requested resource does not support HTTP method 'GET' 并且成功了。

但是在 API 帮助页面上,我看到的是

动作的METHODGET,应该是POST

也许我遗漏了一些不应该或应该在我正在使用的操作上实施的内容。

这是我在控制器中的代码。

    [HttpPost, Route("DestroySession/{userID}", Name = "DestroySession"), AcceptVerbs("GET" , "POST")]
    public async Task<IHttpActionResult> DestroyUserSession(string userID)
    {
        SystemResult systemResult = new SystemResult();
        await Task.Run(() => {
            IAbstractLogic<UserInput, SystemResult> systemProcess = new LogoutLogic();
            UserInput userInput = new UserInput
            {
                UserID = userID
            };
            systemResult = systemProcess.doProcess(userInput);
        }).ConfigureAwait(false);
        return Content(HttpStatusCode.OK, new 
        { 
            message = systemResult.ResultMessage, status = systemResult.ResultCode == 0 
        });
    }

这是我的WebApiConfig

       config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

任何帮助将不胜感激。问候

【问题讨论】:

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


    【解决方案1】:

    哇哦!看来我的代码工作得很好。我刚刚在 POSTMAN 中对其进行了测试,它确实有效。我只能说,如果您的请求是 POST 某事。您需要第三方应用程序来测试它。仅在浏览器上进行测试会给您带来很多问题。

    【讨论】:

    • 你是如何“在浏览器中测试它”的?您的问题没有详细说明。如果您输入的是 url host.com/api/users/destroysession/1,那么这将是一个 GET。 POST 需要通过脚本或页面上的表单来完成。您可以查看开发工具的网络选项卡以查看发出的请求。并不是说我希望 asp 会对此撒谎..
    • @CaiusJard,只是将参数的值放在 URL 上。
    • 是的,它总是做一个 GET
    • 呜呜呜……!!!!现在我懂了。谢谢你,先生。 @CaiusJard
    • 顺便说一句,您也许应该删除,因为请求不包含任何正文数据。通常我们使用 POST 或 PATCH 进行更新,使用 DELETE 进行删除,使用 PUT 进行插入。最好尝试将 GET 保留用于不更改任何内容的只读访问。前段时间有一些事情(谷歌?)认为预取页面上的每个 GETtable 内容以加速浏览“以防万一该内容被点击”是一个好主意,这对所有那些 GET 修改的应用程序造成了问题数据..
    猜你喜欢
    • 2012-09-27
    • 2014-01-28
    • 2018-06-24
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2013-07-31
    • 2017-10-17
    • 2013-03-05
    相关资源
    最近更新 更多