web api post方法上的空参数

gab*_*ira 1 c# asp.net asp.net-web-api

我有一个非常简单的 web api 控制器:

public class CarrinhoController : ApiController
    {
        [HttpPost]
        public string Adiciona([FromBody] string conteudo)
        {
            return "<status>sucesso</status";
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我正在运行服务器并尝试通过curl如下方式测试此方法:

curl --data "teste" http://localhost:52603/api/carrinho
Run Code Online (Sandbox Code Playgroud)

请求到达我的控制器。但是,该参数conteudo始终为空。

我究竟做错了什么?

谢谢。

haz*_*ack 5

这些帖子详细解释了类似的问题http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/

在 asp.net 站点http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

当参数具有 [FromBody] 时,Web API 使用 Content-Type 标头来选择格式化程序。在此示例中,内容类型为“application/json”,请求正文为原始 JSON 字符串(不是 JSON 对象)。

最多允许从消息正文中读取一个参数。

在 Fiddler 上添加“Content-Type: application/json”将起作用。

在此处输入图片说明