说下我粗浅的理解
Content-Type是http请求中用来标识我发送的数据是什么类型。例如text/xml,application/x-www-form-urlencoded,multipart/form-data,都是用来表示内容的类型的。
这次主要针对text/plain和application/json
text/plain 纯文本
application/json json格式
其实我在项目中两个都曾经用过,而我主要用于json请求。在请求时都是在Request Playload中,看下图:
对于请求端其实区别不是太大,但对于后台服务,则处理不同了。
application/json
在SpringMVC中,application/json类型可以直接在请求方法中映射为对象实体,也就是说请求体被框架主动处理了。
text/plain
而text/plain不行,他们目标不一样。所以如果是text/plain需后台接受者自己处理,接受者会获取到原始的输入流,甚至编码都需要自己处理。(被这个坑过o(╥﹏╥)o,以为是IDE编码和TOMCAT设置错误。)
所以在使用的时候要注意:
如果业务明确是JSON格式,那建议使用application/json。
text/plain使用时要注意手动处理,如果请求复杂JSON无法瞒住这个选择也不错。相对自由度更大一点。