gpt4 book ai didi

c# - FromBody 收到的帖子导致序列化错误

转载 作者:行者123 更新时间:2023-12-01 16:51:32 25 4
gpt4 key购买 nike

这是基本设置,我有一个 asp.net core webapi Controller (在 C# 中),具有如下的 post 函数:

[HttpPost]
public ActionResult<string> Post([FromBody] string Name)
{
//Do some processing with the "Name" argument...
return Ok( "Success!" );
}

我正在尝试将以下原始 JSON 请求正文发送到此函数:

{
"Name": "Foo"
}

但是当使用上面的正文向此函数发送 post 请求时,我在服务器控制台中收到以下错误:

"Executing ObjectResult, writing value of type 'Microsoft.AspNetCore.Mvc.SerializableError'"

客户端出现此错误

{ "": [ "Unexpected character encountered while parsing value: {. Path '', line 1, position 1." ] }

我尝试在函数的开头设置一个断点,但它甚至没有触发!为什么我会收到序列化错误?

最佳答案

序列化错误实际上是来自 JSON.NET 的解析错误,但问题实际上与解析 JSON 无关。

真正的问题是 ASP.NET Core 期望将 JSON 正文解析为对象/DTO。因此,您有两个选项可以用来解决问题:

  1. 为您的单个参数创建一个简单的 DTO 容器对象,例如:

    public class SimpleObject { 
    public string Name { get; set; }
    }
  2. 无需在请求正文中传递完整的 JSON 对象,只需使用简单的字符串,例如:“我的参数字符串”

关于c# - FromBody 收到的帖子导致序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069694/

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