终于忍不住对WebAPI下手了,网上有好多关于怎么通过VS创建WebAPI的教程,我在此就不再赘述了。
在这主要分享一下我在创建后调试的问题。
前提:写好一个简单的API,代码内容及所属文件夹架构如下:
namespace webTestAPI.Controllers
{
public class TestController : ApiController
{
[HttpGet]
public string getstring()
{
return "Hello Word";
}
[HttpPost]
public string returnstring(string name, string id)
{
return "我的名字是" + name + ";我的ID是" + id;
}
}
}
问题:作为一名小白,顺着一般的思路就是点击调试,在URL给参数。当我调试时,点击调试按钮后页面如下:
点击调试后:
点击Controllers后:
点击TestController.cs后:
尝试着用https://localhost:44382/webTestAPI/Controllers/TestController/getstring直接调用仍然无效。纠结、、、
解决方案:
查了很多资料,问题根源是URL地址不对。
1.更改App_Start/WebApiConfig文件中的路由方式;将routeTemplate的值由默认的"api/{controller}/{id}"改为"api/{controller}/{action}/{id}",如下图所示:
2.测试的URL:api/controller类名前缀(TestController,前缀即test,不区分大小写)/方法名,即https://localhost:44382/api/Test/getstring
问题解决,调试成功!