您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關RestTemplate GET請求怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在Spring Boot環境下寫一個單元測試用例,以String類型接收響應結果信息
@SpringBootTestclass ResttemplateWithSpringApplicationTests { @Resource private RestTemplate restTemplate; @Test void testSimple() { String url = "http://jsonplaceholder.typicode.com/posts/1"; String str = restTemplate.getForObject(url, String.class); System.out.println(str); }}
getForObject第二個參數為返回值的類型,String.class以字符串的形式接受getForObject響應結果,
在Spring Boot環境下寫一個單元測試用例,以java POJO對象接收響應結果信息
@Testpublic void testPoJO() { String url = "http://jsonplaceholder.typicode.com/posts/1"; PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class); System.out.println(postDTO.toString());}
輸出打印結果如下:
POJO的定義如下,根據JSON String的數據格式定義。
@Datapublic class PostDTO { private int userId; private int id; private String title; private String body;}
訪問http://jsonplaceholder.typicode.com/posts 可以獲得JSON數組方式的請求結果
下一步就是我們該如何接收,使用方法也很簡單。在Spring Boot環境下寫一個單元測試用例,以數組的方式接收請求結果。
@Testpublic void testArrays() { String url = "http://jsonplaceholder.typicode.com/posts"; PostDTO[] postDTOs = restTemplate.getForObject(url, PostDTO[].class); System.out.println("數組長度:" + postDTOs.length);}
請求的結果被以數組的方式正確接收,輸出如下:
數組長度:100
以下的幾個請求都是在訪問"http://jsonplaceholder.typicode.com/posts/1",只是使用了占位符語法,這樣在業務使用上更加靈活。
使用占位符的形式傳遞參數:
String url = "http://jsonplaceholder.typicode.com/{1}/{2}";PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class, "posts", 1);
另一種使用占位符的形式:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";String type = "posts";int id = 1;PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class, type, id);
我們也可以使用 map 裝載參數:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";Map<String,Object> map = new HashMap<>();map.put("type", "posts");map.put("id", 1);PostDTO postDTO = restTemplate.getForObject(url, PostDTO.class, map);
上面的所有的getForObject請求傳參方法,getForEntity都可以使用,使用方法上也幾乎是一致的,只是在返回結果接收的時候略有差別。使用ResponseEntity<T> responseEntity
來接收響應結果。用responseEntity.getBody()獲取響應體。響應體內容同getForObject方法返回結果一致。剩下的這些響應信息就是getForEntity比getForObject多出來的內容。
HttpStatus statusCode = responseEntity.getStatusCode();
獲取整體的響應狀態信息int statusCodeValue = responseEntity.getStatusCodeValue();
獲取響應碼值HttpHeaders headers = responseEntity.getHeaders();
獲取響應頭等
@Testpublic void testEntityPoJo() { String url = "http://jsonplaceholder.typicode.com/posts/5"; ResponseEntity<PostDTO> responseEntity = restTemplate.getForEntity(url, PostDTO.class); PostDTO postDTO = responseEntity.getBody(); // 獲取響應體 System.out.println("HTTP 響應body:" + postDTO.toString()); //以下是getForEntity比getForObject多出來的內容 HttpStatus statusCode = responseEntity.getStatusCode(); // 獲取響應碼 int statusCodeValue = responseEntity.getStatusCodeValue(); // 獲取響應碼值 HttpHeaders headers = responseEntity.getHeaders(); // 獲取響應頭 System.out.println("HTTP 響應狀態:" + statusCode); System.out.println("HTTP 響應狀態碼:" + statusCodeValue); System.out.println("HTTP Headers信息:" + headers);}
輸出打印結果
感謝各位的閱讀!關于“RestTemplate GET請求怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。