本文适合有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 "修改失败"; } }