@RequestParam与@RequestBody
这两个注解是我们在写SpringBoot项目使用频率非常高的两个参数注解,这俩最主要的用法差距就是一个是URL,一个是请求体
@RequestParam
,这个注解使用时候最好添加参数(value),当然发送请求的地方也要按照这个value来起名
@RequestBody
,这个注解看你个人需求是否需要添加默认值,也就是请求体没有时候,它会有一个默认值,然后这个请求体默认是一个json串,然后进行处理就ok
eg:
public String getCardInfo(@RequestBody String base64,
@RequestParam(value = "cardType") Integer cardType) throws JsonProcessingException {
return cardBagService.getJsonData(new ObjectMapper().readTree(base64).findPath("image").toString().replace("\"",""), cardType);
}
这个地方补充一个特殊的知识点就是传递Base64值的方法
一般来说我们是不建议在url传递base64的,最常见的就是400错误了,如果想要使用url传递的话,你需要在后端用RequestParam获取过来的base64字符串做一个所有空格替换为+号的操作
推荐使用请求体发送base64值,不过你使用json串处理过RequestBody获取的值时候需要把双引号去掉