人为设置让web api参数反序列化为json
webapi的参数反序列化是根据HTTP请求中的Content-type
现在有这样一个场景
在发起HTTP请求都时候,ContentType不填或者随意填,Action内接收的参数按照json格式反序列化
思路1.
通过某种方式在参数序列化之前改变HTTP请求的ContentType,或者让web api进行参数反序列化的时候读取的ContentType为我们想要的值。
比如在请求的时候填写Content-Type:text/plain
然后经过某种处理,在webapi进行反序列化的时候他读到的Content-Type:application/json。
然后他按照json格式去处理
思路2.
设定类似于Content-Type填写application/json映射参数使用json反序列化这样的映射,比如我在url中写type=json,即可映射为使用json格式反序列化参数。
通过以下这种方式似乎是配置返回值的序列化方式的,并不影响接收参数的反序列化。
QueryStringMapping jsonMapping = new QueryStringMapping("type", "json", "application/json");
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(jsonMapping);