c# – 在WebApi上像GET一样处理HTTP POST方法

前端之家收集整理的这篇文章主要介绍了c# – 在WebApi上像GET一样处理HTTP POST方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在创建一个WebApi控制器,我正在尝试使用HttpPost请求提交新用户进行注册.这在我的localhost上工作正常,但是当我将它发布到Azure时,我得到一个405方法不允许错误消息:“请求的资源不支持http方法’GET’”.

我使用邮递员来检查操作,所以我使用生成代码来查看请求,如下所示:

POST /api/account/register/student HTTP/1.1
Host: www.l3cture.com
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 27c1b2ab-96ad-4a99-b271-4030402768e7

所以我可以清楚地看到请求是POST.
以下是具有其属性的控制器动作代码(我目前已对其进行了简化,因此不会发布任何模型,并且会发生相同的行为)

[HttpPost]
[Route("register/student")]
[AllowAnonymous]
public async Task<IHttpActionResult> PostStudent(/*RegisterStudent model*/)
{
    //Implementation of register
    return Ok();
}

我已经检查了属性的命名空间,它是System.Web.Http,因此它不会与MVC命名空间混淆.

有趣的是,当我将方法更改为HttpGet,并使用postman对其进行POST时,我收到状态200.这几乎就像HttpPost请求被我的控制器一样对待HttpGet.

我在其他地方使用过HttpPut和HttpDelete,它们都运行良好.

我不确定如何解决这个问题,并且想知道是否有人有任何想法?
如果我需要发布更多代码以便澄清,请告诉我.

提前致谢

解决方法

事实证明我使用的是Http,而不是Https.
原文链接:https://www.f2er.com/csharp/95760.html

猜你在找的C#相关文章