GET請求
第一種:getForEntity
getForEntity方法的返回值是一個ResponseEntity<T>
,ResponseEntity<T>
是Spring對HTTP請求響應的封裝,包括了幾個重要的元素,如響應碼、contentType、contentLength、響應消息體等。
可以用一個數字做占位符,最后是一個可變長度的參數,來一一替換前面的占位符
@RequestMapping("/sayhello")
public String sayHello() {
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://HELLO-SERVICE/sayhello?name={1}", String.class, "張三");
return responseEntity.getBody();
}
可以前面使用name={name}這種形式,最后一個參數是一個map,map的key即為前邊占位符的名字,map的value為參數值
@RequestMapping("/sayhello2")
public String sayHello2() {
Map<String, String> map = new HashMap<>();
map.put("name", "李四");
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://HELLO-SERVICE/sayhello?name={name}", String.class, map);
return responseEntity.getBody();
}
第二種:getForObject
getForObject函數實際上是對getForEntity函數的進一步封裝,如果你只關注返回的消息體的內容,對其他信息都不關注,此時可以使用getForObject
@RequestMapping("/book2")
public Book book2() {
Book book = restTemplate.getForObject("http://HELLO-SERVICE/getbook1", Book.class);
return book;
}
POST請求
第一種:postForEntity
方法的第一參數表示要調用的服務的地址 第二個參數表示上傳的參數 第三個參數表示返回的消息體的數據類型
@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();
}
服務端
@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;
}
第二種:postForObject
如果你只關注,返回的消息體,可以直接使用postForObject。用法和getForObject一致。
原文:https://blog.csdn.net/u012702547/article/details/77917939
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!