gpt4 book ai didi

asp.net-mvc - 如何强制 asp.net webapi 始终将 POST 数据解码为 JSON

转载 作者:行者123 更新时间:2023-12-02 11:01:19 24 4
gpt4 key购买 nike

我正在将一些 json 数据发布到我的 asp.net webapi,但 post 参数始终为 null - 数据未正确序列化。该方法看起来像这样:

public HttpResponseMessage Post(string id, RegistrationData registerData)

问题似乎在于客户端(我无法控制)始终将内容类型发送为 x-www-form-urlencoded,即使内容实际上是 json。这会导致 mvc 尝试将其反序列化为表单数据,但失败。

有没有办法让 webapi 始终反序列化为 json,并忽略内容类型 header ?

最佳答案

我在这里找到了答案:http://blog.cdeutsch.com/2012/08/force-content-types-to-json-in-net.html

此代码需要添加到Application_Start或WebApiConfig.Register

foreach (var mediaType in config.Formatters.FormUrlEncodedFormatter.SupportedMediaTypes) 
{
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(mediaType);
}

config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter);
config.Formatters.Remove(config.Formatters.XmlFormatter);

它告诉 json 格式化程序接受每种类型,并删除表单和 xml 格式化程序

关于asp.net-mvc - 如何强制 asp.net webapi 始终将 POST 数据解码为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12385694/

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