为什么 Post 有效,但 Get 无效,具有相同的路由和参数?
Why does Post work, but not Get, with the same route and args?
我有以下控制器代码:
namespace PlatypusReports.Controllers
{
[RoutePrefix("api/platypus")]
public class PlatypusController : ApiController
{
[Route("{unit}/{begindate}")]
[HttpPost]
public void Post(string unit, string begindate)
{
. . .
}
[Route("{unit}/{begindate}")]
[HttpGet]
public string Get(string unit, string begindate)
{
. . .
}
. . .
调用POST方法有效,但调用GET方法无效;在后一种情况下,我得到“不允许使用 405 方法 - 请求的资源不支持 http 方法 'GET'”。“=13=”
我用 Postman 的 URL 称呼它们:
http://localhost:52194/api/platypus/poisontoe/201509
...唯一的区别是我 select "POST" 有效,而当我 select "GET" 时无效。
为什么 POST 有效但 GET 无效?我必须在我的 GET 代码中更改什么才能使其成为 supported/allowed?
如果您使用的是 apicontroller,则不需要装饰器 HttpPost 和 HttpGet。如果你删除它们,它应该可以工作。
我有以下控制器代码:
namespace PlatypusReports.Controllers
{
[RoutePrefix("api/platypus")]
public class PlatypusController : ApiController
{
[Route("{unit}/{begindate}")]
[HttpPost]
public void Post(string unit, string begindate)
{
. . .
}
[Route("{unit}/{begindate}")]
[HttpGet]
public string Get(string unit, string begindate)
{
. . .
}
. . .
调用POST方法有效,但调用GET方法无效;在后一种情况下,我得到“不允许使用 405 方法 - 请求的资源不支持 http 方法 'GET'”。“=13=”
我用 Postman 的 URL 称呼它们:
http://localhost:52194/api/platypus/poisontoe/201509
...唯一的区别是我 select "POST" 有效,而当我 select "GET" 时无效。
为什么 POST 有效但 GET 无效?我必须在我的 GET 代码中更改什么才能使其成为 supported/allowed?
如果您使用的是 apicontroller,则不需要装饰器 HttpPost 和 HttpGet。如果你删除它们,它应该可以工作。