添加附加参数时无法连接到 ASP.NET 网络 api
Unable to connect to ASP.NET web api when I add additional parameters
我正在尝试了解 Web Api 2(Visual Studio 中的 MVC 项目)。
方法是
[HttpPost]
public string Post(int id, string e, bool o)
///code removed
使用 Postman,我可以使用 Post
和路径 http://localhost:62093/api/Demo/5
进行查询。这有效并且 returns 预期值。
现在我想添加更多的参数,这是错误的地方!
我已将我的方法更新为
[HttpPost]
public string Post(int id, string e, bool o)
现在,当我尝试使用(再次)Post
和路径 http://localhost:62093/api/Demo/5
查询时,我看到
"Message": "The requested resource does not support http method 'POST'."
然后我尝试更改 URL,所以当我使用 Post
和新路径 http://localhost:62093/api/Demo/5/a/false
时,我看到 HTML 文件响应
The resource cannot be found
之前在 Whosebug 上已经提到过,据我了解,URL 是 'incorrect'
认为这可能是我更新我的路线的问题
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{s}/{o}",
defaults: new { id = RouteParameter.Optional, s = RouteParameter.Optional, o = RouteParameter.Optional }
);
但同样的问题仍然存在。我不确定我做错了什么。
这是路由问题。您没有正确配置路由。
首先让我们更新 WebApiConfig.cs
文件
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
现在我建议使用 Attribute routing
public class DemoController : ApiController {
[HttpPost]
[Route("api/Demo/{id:int}/{e}/{o:bool}")] //Matches POST api/Demo/5/a/false
public IHttpActionResult Post(int id, string e, bool o) {
return Ok();
}
}
我最终建议阅读 Attribute Routing in ASP.NET Web API 2 以更好地了解如何正确路由到您的 API 控制器
我正在尝试了解 Web Api 2(Visual Studio 中的 MVC 项目)。
方法是
[HttpPost]
public string Post(int id, string e, bool o)
///code removed
使用 Postman,我可以使用 Post
和路径 http://localhost:62093/api/Demo/5
进行查询。这有效并且 returns 预期值。
现在我想添加更多的参数,这是错误的地方!
我已将我的方法更新为
[HttpPost]
public string Post(int id, string e, bool o)
现在,当我尝试使用(再次)Post
和路径 http://localhost:62093/api/Demo/5
查询时,我看到
"Message": "The requested resource does not support http method 'POST'."
然后我尝试更改 URL,所以当我使用 Post
和新路径 http://localhost:62093/api/Demo/5/a/false
时,我看到 HTML 文件响应
The resource cannot be found
之前在 Whosebug 上已经提到过,据我了解,URL 是 'incorrect'
认为这可能是我更新我的路线的问题
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{s}/{o}",
defaults: new { id = RouteParameter.Optional, s = RouteParameter.Optional, o = RouteParameter.Optional }
);
但同样的问题仍然存在。我不确定我做错了什么。
这是路由问题。您没有正确配置路由。
首先让我们更新 WebApiConfig.cs
文件
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
现在我建议使用 Attribute routing
public class DemoController : ApiController {
[HttpPost]
[Route("api/Demo/{id:int}/{e}/{o:bool}")] //Matches POST api/Demo/5/a/false
public IHttpActionResult Post(int id, string e, bool o) {
return Ok();
}
}
我最终建议阅读 Attribute Routing in ASP.NET Web API 2 以更好地了解如何正确路由到您的 API 控制器