gpt4 book ai didi

c# - Web API [FromBody] 参数在发送对象数组时为空

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:03 27 4
gpt4 key购买 nike

我似乎遇到了一个有趣的 Web API 问题 - 使用这个 Controller 操作,在左大括号上设置断点来检查 thing:

[HttpPut]
public void Test([FromBody]object thing)
{
}

如果我提交以下请求(作为 CURL),我会得到期望值,它是一个包含正文数据的 JObject:

curl -X PUT -H "Content-Type: application/json" -d '{
"Name": "Joe",
"Key": { "Key": "Value" }
}' "http://localhost/api/TestController/Test"

也就是说,一个匿名对象,其中 Name 是 Joe,Key 是另一个包含 Key = Value 的对象。

但是,如果我稍微更改它以提交一个 Keys 数组,我将得到 null。没有错误,只是 null

curl -X PUT -H "Content-Type: application/json" -d '{
"Name": "Joe",
"Keys": [{ "Key": "Value" }]
}' "http://localhost/api/TestController/Test"

为什么会这样? HTTP 动词似乎并不重要(我试过 POST 和 PUT),使用 dynamic 而不是 object 是一回事。

以下是部分截图: enter image description here enter image description here

最佳答案

您的代码在 Postman 中测试时运行良好。

enter image description here

enter image description here

关于c# - Web API [FromBody] 参数在发送对象数组时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38312672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com