Web API POST - 404 Not Found
本文关键字:Not Found API POST Web | 更新日期: 2023-09-27 18:00:44
在我的VS2013 Web应用程序中,我有很多这样的控制器:
[Route("Test/{param1}")]
public bool Test (Int32 Param1)
{
return true;
}
我从我的客户端调用方法:
response = await client.GetAsync("TestCtrlClass/Test/1");
,一切都很好。
现在,我需要将一个对象传递给方法,所以我放了这个:
[HttpPost]
[Route("Test2/{item}")]
public bool Test2([FromBody] ClassName item)
{
return true;
}
我从我的客户端调用方法:
HttpClient client = new HttpClient();
client.BaseAddress = ServerUri;
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
HttpContent content = new ObjectContent<ClassName>(Item, jsonFormatter);
response = await client.PostAsync("TestCtrlClass/Test2", content);
并且我得到404未找到。
这是我的路线配置:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
为什么
谢谢。
请注意,您发送的POST请求正文中包含参数。这意味着您要过帐到的URl是TestCtrlClass/Test2
,而不是TestCtrlClass/Test2/anything_here
。所以你的属性应该是:
[HttpPost]
[Route("Test2")]
public bool Test2([FromBody] ClassName item)
此外,我认为这里不需要[FromBody]
。