③. postForEntity
- ①. 该方法和get请求中的getForEntity方法类似,如下例子:
- 方法的第一参数表示要调用的服务的地址
- 方法的第二个参数表示上传的参数
- 方法的第三个参数表示返回的消息体的数据类型
@RequestMapping("/book3") public Book book3() { Book book = new Book(); book.setName("红楼梦"); ResponseEntity<Book> responseEntity = restTemplate.postForEntity ("http://HELLO-SERVICE/getbook2", book, Book.class); return responseEntity.getBody(); }
②. 这里创建了一个Book对象,这个Book对象只有name属性有值,将之传递到服务提供者那里去,服务提供者代码如下:
@RequestMapping(value = "/getbook2", method = RequestMethod.POST) public Book book2(@RequestBody Book book) { System.out.println(book.getName()); book.setPrice(33); book.setAuthor("曹雪芹"); book.setPublisher("人民文学出版社"); return book; }
- ③. 服务提供者接收到服务消费者传来的参数book,给其他属性设置上值再返回,调用结果如下:
④. postForObject
- ①. 如果你只关注,返回的消息体,可以直接使用postForObject。用法和getForObject一致