我有一对GET和POST Web API方法可以正常工作。我有另一对似乎设置完全相同的方式,但GET方法拒绝接受调用。所有尝试都以msg结束,“请求的资源不支持http方法'GET'。”
然而(再次)这个GET方法的设置和装饰与工作方法相同。
这是工作的(无标记的“GET”(第一种方法)和标记的“POST”在被调用时成功输入):
AVPlayer
......这里看起来几乎完全相同(当然,名称不同,还有一个参数):
[anAVPlayerObject pause];
[anAVPlayerObject replaceCurrentItemWithPlayerItem:nil];
anAVPlayerObject = nil;
如上所述,使用非工作的第二个块代码,当我尝试调用“GET”时,我得到:
请求的资源不支持http方法'GET'。
我确实设置了属性路由:
[RoutePrefix("api/pricecompliance")]
public class PriceComplianceController : ApiController
{
[Route("{unit}/{begindate}")]
public HttpResponseMessage Get(string unit, string begindate)
{
. . .
[Route("{unit}/{begindate}")]
[HttpPost]
public void Post(string unit, string begindate)
{
. . .
为什么在后一种情况下不支持GET?
当我尝试通过点击带有网址的链接来调用GET时,当我尝试使用“ http://localhost:52194/api/produceusage/gramps/201312/201412 ”从Postman调用它时,我得到同样的“GET不支持”爵士乐。
答案 0 :(得分:0)
原来我必须改变这个:
public HttpResponseMessage Get(string unit, string beginRange, string endRange)
......对此:
public HttpResponseMessage Get(string unit, string begindate, string enddate)
...以便参数名称与路线中的参数名称完全匹配:
[Route("{unit}/{begindate}/{enddate}")]
为什么这件事我不知道,但确实如此。