使用Put和curl调用Dotnet核心Aspnet Rest
如何编写语句来放置Dotnet核心aspnet 1.1 rest方法 我可以让它识别我的整数id,但不能识别我的字符串负载 方法是:使用Put和curl调用Dotnet核心Aspnet Rest,rest,curl,asp.net-web-api,asp.net-core,Rest,Curl,Asp.net Web Api,Asp.net Core,如何编写语句来放置Dotnet核心aspnet 1.1 rest方法 我可以让它识别我的整数id,但不能识别我的字符串负载 方法是: [HttpPut("{id}")] public IActionResult Put(int id, string name){... 抄袭自 当我卷曲时: curl -H "Content-Type: application/json" \ -X PUT \ --data '{"Name":"Tva"}' \ localhost:500
[HttpPut("{id}")]
public IActionResult Put(int id, string name){...
抄袭自
当我卷曲时:
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"Name":"Tva"}' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '"Tva"' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"name": "Tva"}' \
localhost:5000/api/todo/2
它可以识别URL中的id 2,但不能识别Name参数。相反,该方法将其作为null接收。
web服务器吐出执行操作方法WebApplication.Controllers.TodoController.Put MyWs,参数为2,-ModelState无效
我还尝试设置[FromBody]标记
这样称呼它:
curl -H "Content-Type: multipart/form-data;" \
-X PUT \
-F "name=Tva" \
localhost:5000/api/todo/2/
但后来我得到了415分
我确实对上面的调用和被调用方进行了排列,但没有找到正确的组合。有些东西不见了
小编辑:
'dotnet new'还将创建一个web api项目。我还没有调查我是否以微软认为应该的方式编写了被叫人。
我的问题是有道理的,但将来可能不那么重要。我将回到主题上。尝试以下方法:
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"Name":"Tva"}' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '"Tva"' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"name": "Tva"}' \
localhost:5000/api/todo/2
或者尝试使用包装器模型:
public class MyModel
{
public string Name { get; set; }
}
[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody] MyModel model){...
和卷曲:
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"Name":"Tva"}' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '"Tva"' \
localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
-X PUT \
--data '{"name": "Tva"}' \
localhost:5000/api/todo/2