1. 程式人生 > >RestTemplate中幾種常見的請求方式

RestTemplate中幾種常見的請求方式

see 信息 book ren new 三個參數 body turn 表示

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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

RestTemplate中幾種常見的請求方式