本文适合有SSM框架基础和springboot开发基础的同学查阅
这里postForObject 方法有三个参数,没有使用四个参数的。
restTemplate.postForObject(String url, Object request, Class<T> responseType);
1.String url => 顾名思义 这个参数是请求的url路径。
2.Object request => 请求的body 这个参数需要再controller类用 @RequestBody 注解接收
3.Class<T> responseType => 接收响应体的类型
private static final String REST_URL_PREFIX = "http://localhost:8001";
@Autowired
RestTemplate restTemplate;
发送请求的controller方法
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(User user) {
return restTemplate.postForObject(REST_URL_PREFIX+"/cloud/update", user, String.class);
}
接受请求的controller方法
@RestController
@RequestMapping("/cloud")
public class UserController {
//这里一定要用@RequestBody 注解接收--Controller接受不到值的根本原因
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(@RequestBody User user) {
if(user.getId() == null){
return "传值为空";
}else if (userService.update(user)) {
return "修改成功";
} else {
return "修改失败";
}
}
成功返回
如果不使用@RequestBody注解,则接受不到传值
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String update(User user) {
if(user.getId() == null){
return "传值为空";
}else if (userService.update(user)) {
return "修改成功";
} else {
return "修改失败";
}
}