本文是精講RestTemplate第5篇,前篇的blog訪問地址以下:html
爲了方便後續開發測試,首先介紹一個網站給你們。 JSONPlaceholder是一個提供免費的在線REST API的網站,咱們在開發時可使用它提供的url地址測試下網絡請求以及請求參數。或者當咱們程序須要獲取一些模擬數據、模擬圖片時也可使用它。
若是您閱讀完本文章,以爲對您有幫助,請幫忙點個贊,您的支持是我不竭的創做動力vue
熟悉RESTful風格的朋友,應該瞭解RESTful風格API使用HTTP method表達對資源的操做。java
經常使用HTTP方法 | RESTful風格語義(操做) |
---|---|
GET | 查詢、獲取數據 |
POST | 新增、提交數據 |
DELETE | 刪除數據 |
PUT | 更新、修改數據 |
HEAD | 獲取HTTP請求頭數據 |
OPTIONS | 判斷URL提供的當前API支持哪些HTTP method方法 |
在前面的章節,我已經爲你們詳細的介紹了RestTemplate的GET和POST的相關的使用方法,本節來爲你們介紹DELETE、PUT、HEAD、OPTIONS。spring
刪除一個已經存在的資源,使用RestTemplate的delete(uri)方法。該方法會向URL表明的資源發送一個HTTP DELETE方法請求。json
@Test void testDelete() { String url = "http://jsonplaceholder.typicode.com/posts/1"; restTemplate.delete(url); }
在前面章節測試類的基礎上,寫如上代碼的測試用例。上面代碼含義爲刪除posts列表裏面的第1個帖子。後端
修改一個已經存在的資源,使用RestTemplate的put()方法。該方法會向URL表明的資源發送一個HTTP PUT方法請求。springboot
@Test void testPut() { // 請求地址 String url = "http://jsonplaceholder.typicode.com/posts/1"; // 要發送的數據對象(修改數據) PostDTO postDTO = new PostDTO(); postDTO.setUserId(110); postDTO.setTitle("zimug 發佈文章"); postDTO.setBody("zimug 發佈文章 測試內容"); // 發送PUT請求 restTemplate.put(url, postDTO); }
上面代碼RESTful風格語義是:修改posts列表裏面的第1個帖子。網絡
exchange方法是一個通用的方法,它能夠發送GET、POST、DELETE、PUT等等HTTP方法請求。前後端分離
//使用getForEntity發送GET請求 ResponseEntity<PostDTO> responseEntity = restTemplate.getForEntity(url, PostDTO.class); //使用exchange發送GET請求 ResponseEntity<PostDTO> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, PostDTO.class);
// 使用postForEntity發送POST請求 ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, postDTO, String.class); // 使用exchange發送POST請求 ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST,null, String.class);
// 使用delete發送DELETE請求,返回值爲void restTemplate.delete(url); // 使用exchange發送DELETE請求 ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.DELETE,null,String.class);
上面爲你們舉了幾個用exchange()發送請求的例子,exchange()還能針對不少的HTTP method類型發送請求,是通用方法!微服務
使用headForHeaders()API 獲取某個資源的URI的請求頭信息,而且只專一於獲取HTTP請求頭信息。
@Test public void testHEAD() { String url = "http://jsonplaceholder.typicode.com/posts/1"; HttpHeaders httpHeaders = restTemplate.headForHeaders(url); //斷言該資源接口數據爲JSON類型 assertTrue(httpHeaders.getContentType() .includes(MediaType.APPLICATION_JSON)); System.out.println(httpHeaders); }
請求頭信息輸出打印結果以下
下文代碼使用optionsForAllow測試該URL資源是否支持GET、POST、PUT、DELETE,即增刪改查。
@Test public void testOPTIONS() { String url = "http://jsonplaceholder.typicode.com/posts/1"; Set<HttpMethod> optionsForAllow = restTemplate.optionsForAllow(url); HttpMethod[] supportedMethods = {HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE}; //測試該url資源是否支持GET、POST、PUT、DELETE,即增刪改查 assertTrue(optionsForAllow.containsAll(Arrays.asList(supportedMethods))); }
以爲對您有幫助的話,幫我點贊、分享!您的支持是我不竭的創做動力! 。另外,筆者最近一段時間輸出了以下的精品內容,期待您的關注。