1梧油、Content-Type:application/x-www-form-urlencoded; charset=UTF-8
對(duì)應(yīng)的后端的處理方式,如果是單個(gè)參數(shù)去獲取骗村,那就用@RequestParam胚股,如果是對(duì)應(yīng)Java Bean裙秋,那就不需要任何注解
2摘刑、Content-Type:application/json;charset=UTF-8
對(duì)應(yīng)的后端處理方式泣侮,設(shè)置@RequestBody
3活尊、Content-Type:multipart/form-data;
2018-1-29下班總結(jié):
用get方式發(fā)送參數(shù),拼接在url后:
后端處理:
如果是Post請(qǐng)求:
1、前端傳遞的方式為:Body+application/x-www-form-urlencoded:
2、如果前端改成以json字符串的形式傳遞參數(shù):
后端接收到j(luò)son字符串,用阿里fastjson解析:
3庶溶、接著上一步的后端代碼沉删,如果前端改成form-data 的方式傳遞矾瑰,則報(bào)錯(cuò):
將后端的代碼改一下:
2劲够、2如果前端是body+x-www-form-urlencoded方式傳參征绎,后端在解析字符串時(shí)報(bào)錯(cuò):
到這里人柿,我們小小總結(jié)一下:
如果是POST+form-data的方式:
不需要做任何處理忙厌,直接用對(duì)象接收即可(不管有多少個(gè)對(duì)象):
如果是POST+x-www.form-urlencoded的方式,可以加@RequestParam注解來(lái)獲雀绶拧(如果不傳,則報(bào)錯(cuò):
如果是POSt+json格式傳遞(瀏覽器為Request Payload孟害,postman為raw格式)的方式:
后端需要用@RequestBody注解標(biāo)識(shí)字段击你,@RequestBody的作用是接收Http請(qǐng)求中參數(shù),調(diào)用HttpMessageConverter接口轉(zhuǎn)化為json或xml數(shù)據(jù)并綁定到對(duì)象上丁侄。同理鸿摇,@ResponseBody也是調(diào)用HttpMessageConverter接口將數(shù)據(jù)轉(zhuǎn)換成json或xml格式的數(shù)據(jù)拙吉,返回給前端揪荣。
最終的結(jié)論:
json格式的數(shù)據(jù)用@RequestBody注解讓HttpMessageConverter轉(zhuǎn)換成json數(shù)據(jù)綁定到對(duì)象上;
urlencoded或者form-data一般都用@RequestParam注解來(lái)標(biāo)注(算是個(gè)規(guī)范吧请祖,不加也可以)凰棉,當(dāng)是自己封裝的實(shí)體對(duì)象時(shí)撒犀,什么都不用加或舞。