尝试使用POST,但API尝试使用GET

时间:2016-04-25 20:30:58

标签: c#-4.0 asp.net-web-api asp.net-web-api2

我正在尝试使用api方法来使用POST,但它坚持尝试使用GET。我用Google搜索并搜索过,但我尝试的所有内容都会返回相同的消息。

这是我的控制器:

hx start --dev

无论我尝试什么,这都是我得到的信息:

  

消息:“请求的资源不支持http方法'GET'。”

     

请求   网址:http://localhost:61645/api/game/452/createcharacter/testChar1   请求方法:GET状态代码:405方法不允许远程   地址:[:: 1]:61645

我正在使用:使用System.Web.Http;

这有诀窍吗?

由于

2 个答案:

答案 0 :(得分:2)

使用此代码:

[Route("api/game/{gameId}/createcharacter/{name}")]
[HttpPost]
public IHttpActionResult PostNewCharacter(string name)
{
    return Created("created", CharacterGenerationService.CreateNewCharacter(name));
}

答案 1 :(得分:0)

在路由模板中,您说您将从URL获取name参数值,但在方法的签名中,您使用FromBody属性修饰相同的参数,该参数告诉您将检索该值来自邮件正文。

您有两种选择:

  • 删除FromBody属性,您的网址将正常运行
  • 或移除路线模板中的 {name} 参数,并将name值发布到您的请求正文中。

gameId参数怎么样? 你的方法不需要它吗?如果是,则需要将其作为方法参数传递。