访问Web API方法时找不到404 404

时间:2017-05-05 06:42:53

标签: asp.net asp.net-web-api asp.net-web-api2 asp.net-core-mvc

我需要这个方法来返回一个整数值:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpPost("ByPayment")]
    public int Payment(string accountId, string mount, string shenase)
    {
        return 21;
    }
}

当我转到以下地址时:

http://localhost:1070/api/values/Payment/ByPayment?accountId=258965&mount=85694&shenase=85456

我收到以下错误:

ٍError

有什么问题?我该如何解决?

2 个答案:

答案 0 :(得分:2)

您可能有更多理由获得404.但有一件事肯定是错的 - 您向GET请求发送标记为{{1}的方法}(这意味着它只响应[HttpPost("ByPayment")]个请求。

我不知道您打算做什么,但您必须将其更改为POST或使用可以发出[HttpGet("ByPayment")]请求的REST客户端(例如REST Easy

其他原因可能是您的控制器名称错误。它应该被称为POST

答案 1 :(得分:1)

我想用查询字符串参数发送Get请求。

1。将'HttpPost'更改为'HttpGet' [HttpPost("ByPayment")][HttpGet("ByPayment")]

2。同时更改您的请求网址,不正确。

http://localhost:1070/api/values/Payment/ByPayment?accountId=258965&mount=85694&shenase=85456

http://localhost:1070/api/Values/ByPayment?accountId=258965&mount=85694&shenase=85456

更新了代码

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("ByPayment")]
    public int Payment(string accountId, string mount, string shenase)
    {
        return 21;
    }
}

我建议请阅读此tutorial以了解webapi的基本知识。