老师,早上好!
请教一个问题?
@PostMapping("/save")
public CommonResp<Object> save(@Valid @RequestBody TrainCarriageSaveReq req) {
...
}
@GetMapping("/query-list")
public CommonResp<PageResp<TrainCarriageQueryResp>> queryList(@Valid TrainCarriageQueryReq req) {
...
}
本节中,为什么一个加了 @RequestBody 而一个没有加?
我上网搜索,搜到的答案都是同一篇,同时,他说的刚才与老师你写的相反。文中的解释是这样的。
为什么有的需要加@requestBody,有的不需要。加与不加的区别如下:
使用@requestBody.当请求content_type为:application/json类型的请求,数据类型为json时, json格式如下:{“aaa”:“111”,“bbb”:“222”}
不使用@requestBody.当请求content_type为:application/x-www-form-urlencoded类型的或multipart/form-data时,数据格式为aaa=111&bbb=222。
1 默认的ContentType的值为:application/x-www-form-urlencoded; charset=UTF-8
此格式为表单提交格式,数据为key1=value1&key2=value2的格式 。
根据上面文中的说法,默认的ContentType的值为:application/x-www-form-urlencoded; charset=UTF-8
此格式为表单提交格式,数据为key1=value1&key2=value2的格式,此时不使用@requestBody。
而老师你上面写的却是要加@RequestBody 的?
是不是网上的这种说法是错误的?post数据不都是以{“aaa”:“111”,“bbb”:“222”}这种格式的吗?怎么可能会是key1=value1&key2=value2的格式?上网搜索不但没找到答案,反而越看越迷糊了?
谢谢老师解答!!!