Controller接收不到POST方式提交的Json参数
-
Post请求获取不到传入的Json格式数据
调用接口时传入参数已JSON格式的方式传入时
后台Controller层获取参数情况:
可以看见后台获取不到相关的Json数据参数。 但是将Json格式的参数以表单的形式提交时,后台是能正常获取到对应的参数的!
-
当参数已表单的形式提交时,可以直接通过参数传入的方式获取,即直接在接口上添加对应的参数类型和参数即可
-
当参数已Json格式的数据传入时,及上述问题的方式传入参数数据时,我们无法获取到body中的数据。应为Json数据请求时,是已对象的方式传入后台,在后台中 需要用到 @RequestBody 注解,在通过对应对象来获取 Json对象 中的各个数据。如下图所示:
这样就可以获取到 Json 对象参数了!
*** 注:**当不以表单方式提交Post请求数据时,以Json对象作为参数请求Post接口时,我们的请求头需要设置请求类型为 contentType : “application/json;charset=utf-8”
其他类型有: 使用GET则强制使用 application/x-www-form-urlencoded 方式
表单的默认属性为: application/x-www-form-urlencoded
否则就会导致请求报错:415:不支持的媒体类型。如下图所示:
所有需要将请求头中的 Content-Type 类型设置为Json格式的数据: application/json;charset=utf-8 即可。