调用web api PUT FromBody"value"始终为null

Otá*_*cio 2 asp.net-web-api asp.net-core

我试图使用cURL调用ValuesController WebApi控制器(默认情况下创建)"PUT"方法.无论我做什么,发送value ="abc","abc"或"= abc"正如我在POST方法的其他问题中所建议的那样,无济于事.

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody]string value)
        {
        }
Run Code Online (Sandbox Code Playgroud)

我也尝试将Content-Type更改为application/json和application/x-www-form-urlencoded,似乎没什么用.

curl -H -d "=TEST" -X PUT  http://localhost:30960/api/values/5
Run Code Online (Sandbox Code Playgroud)

这是ASP.NET 5 Web Api中的错误还是在调用时需要使用不同的格式?

mbu*_*nik 5

为了使它工作,你需要将它作为一个简单的字符串传递:

"any value here"
Run Code Online (Sandbox Code Playgroud)

甚至还测试了这种行为

请记住application/json在发出请求时添加Content-Type标头.

我刚刚为PUT和POST请求测试了它.

使用curl:

curl -H "Content-Type: application/json" -d "'Test'" -X PUT http://localhost:[port]/api/values/5
Run Code Online (Sandbox Code Playgroud)