【问题标题】:consuming web api method manually in url在 url 中手动使用 web api 方法
【发布时间】:2014-03-01 01:23:08
【问题描述】:

这是您可能遇到的关于 Web Api 的最愚蠢的问题,但作为一个新手,我正在努力寻找这个简单问题的答案。 在下面的代码中,如果我可以轻松调用返回“数字”但另一个使用 Add 方法的代码,我只是找不到正确的方法来调用它,因为每次我尝试都会收到 404 错误

谁能告诉我如何使用适当的参数调用该方法“添加”?

namespace WebAPIServices.Controllers
{
public class ValuesController : ApiController
{
    // GET api/values
    public string Get()
    {
        return "number";
    }

    //how can i call this one?
    public int Add(int num1,int num2)
    {
    return num1+num2;
    }
}

}

【问题讨论】:

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


    【解决方案1】:

    你应该可以拨打http"//<hostname>/api/values/add?num1=1&num2=2

    您需要添加[HttpGet] 属性,否则默认为[HttpPost]...您可能还需要添加路由。

    //how can i call this one?
    [HttpGet]
    [Route("api/values/add")]
    public int Add(int num1, int num2)
    {
        return num1 + num2;
    }
    

    【讨论】:

    • 嗨,Anthony,我试过了,但它调用了将“数字”作为消息返回的方法
    • 是的,抱歉,您需要为其设置路线。如果您使用的是 Web API 2,您可以在方法上添加 [HttpGet] 和 [Route("api/values/add")]。
    • 非常感谢安东尼。成功了。
    • @Sike12 实际上不需要添加路由。只需要告诉它这是一个 GET。
    • 好吧,Anthony,我发现必须添加路由,否则通话将失败 :)
    【解决方案2】:

    如果您使用的是 Web API 2,则可以使用属性路由 (Web Api 2 Attribute Routing

    如下:

    然后从浏览器或控制台应用程序调用它:

    http:///api/values/add?num1=11&num2=12

    谢谢

    【讨论】:

    • 感谢 Kaz-LA。我现在正在使用 webapi(第一个版本)
    猜你喜欢
    • 2017-07-25
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2018-12-07
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多