RestTemplate的DELETE及PUT等請求方法使用精講
本文是精講RestTemplate第5篇,前篇的blog訪問地址如下:
RestTemplate在Spring或非Spring環(huán)境下使用精講
RestTemplate實現(xiàn)多種底層HTTP客戶端類庫的切換用法
RestTemplate發(fā)送HTTP GET請求使用方法詳解
RestTemplate發(fā)送HTTP POST請求使用方法詳解
為了方便后續(xù)開發(fā)測試,首先介紹一個網(wǎng)站給大家。JSONPlaceholder是一個提供免費的在線REST API的網(wǎng)站,我們在開發(fā)時可以使用它提供的url地址測試下網(wǎng)絡(luò)請求以及請求參數(shù)。或者當(dāng)我們程序需要獲取一些模擬數(shù)據(jù)、模擬圖片時也可以使用它。
一、RESTful風(fēng)格與HTTP method
熟悉RESTful風(fēng)格的朋友,應(yīng)該了解RESTful風(fēng)格API使用HTTP method表達(dá)對資源的操作。
常用HTTP方法 | RESTful風(fēng)格語義(操作) |
---|---|
GET | 查詢、獲取數(shù)據(jù) |
POST | 新增、提交數(shù)據(jù) |
DELETE | 刪除數(shù)據(jù) |
PUT | 更新、修改數(shù)據(jù) |
HEAD | 獲取HTTP請求頭數(shù)據(jù) |
OPTIONS | 判斷URL提供的當(dāng)前API支持哪些HTTP method方法 |
在前面的章節(jié),我已經(jīng)為大家詳細(xì)的介紹了RestTemplate的GET和POST的相關(guān)的使用方法,本節(jié)來為大家介紹DELETE、PUT、HEAD、OPTIONS。
二、使用 DELETE方法去刪除資源
刪除一個已經(jīng)存在的資源,使用RestTemplate的delete(uri)方法。該方法會向URL代表的資源發(fā)送一個HTTP DELETE方法請求。
@Test void testDelete() { String url = "http://jsonplaceholder.typicode.com/posts/1"; restTemplate.delete(url); }
在前面章節(jié)測試類的基礎(chǔ)上,寫如上代碼的測試用例。上面代碼含義為刪除posts列表里面的第1個帖子。
三、使用PUT方法去修改資源
修改一個已經(jīng)存在的資源,使用RestTemplate的put()方法。該方法會向URL代表的資源發(fā)送一個HTTP PUT方法請求。
@Test void testPut() { // 請求地址 String url = "http://jsonplaceholder.typicode.com/posts/1"; // 要發(fā)送的數(shù)據(jù)對象(修改數(shù)據(jù)) PostDTO postDTO = new PostDTO(); postDTO.setUserId(110); postDTO.setTitle("zimug 發(fā)布文章"); postDTO.setBody("zimug 發(fā)布文章 測試內(nèi)容"); // 發(fā)送PUT請求 restTemplate.put(url, postDTO); }
上面代碼RESTful風(fēng)格語義是:修改posts列表里面的第1個帖子。
三、通用請求方法exchange方法
exchange方法是一個通用的方法,它可以發(fā)送GET、POST、DELETE、PUT等等HTTP方法請求。
下面的兩種方式發(fā)送GET請求效果是一樣的
//使用getForEntity發(fā)送GET請求 ResponseEntity<PostDTO> responseEntity = restTemplate.getForEntity(url, PostDTO.class); //使用exchange發(fā)送GET請求 ResponseEntity<PostDTO> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, PostDTO.class);
下面的兩種方式發(fā)送POST請求效果是一樣的
// 使用postForEntity發(fā)送POST請求 ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, postDTO, String.class); // 使用exchange發(fā)送POST請求 ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST,null, String.class);
下面的兩種方式發(fā)送DELETE請求效果是一樣的,只是一個有返回值,一個返回值為void
// 使用delete發(fā)送DELETE請求,返回值為void restTemplate.delete(url); // 使用exchange發(fā)送DELETE請求 ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.DELETE,null,String.class);
上面為大家舉了幾個用exchange()發(fā)送請求的例子,exchange()還能針對很多的HTTP method類型發(fā)送請求,是通用方法!
四、使用HEAD方法獲取HTTP請求頭數(shù)據(jù)
使用*headForHeaders()*API 獲取某個資源的URI的請求頭信息,并且只專注于獲取HTTP請求頭信息。
@Test public void testHEAD() { String url = "http://jsonplaceholder.typicode.com/posts/1"; HttpHeaders httpHeaders = restTemplate.headForHeaders(url); //斷言該資源接口數(shù)據(jù)為JSON類型 assertTrue(httpHeaders.getContentType() .includes(MediaType.APPLICATION_JSON)); System.out.println(httpHeaders); }
請求頭信息輸出打印結(jié)果如下
五、使用OPTIONS獲取HTTP資源支持的method
下文代碼使用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))); }
以上就是RestTemplate的DELETE及PUT等請求方法使用精講的詳細(xì)內(nèi)容,更多關(guān)于RestTemplate的DELETE及PUT等請求用法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談js文件引用方式及其同步執(zhí)行與異步執(zhí)行
下面小編就為大家?guī)硪黄獪\談js文件引用方式及其同步執(zhí)行與異步執(zhí)行。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10Java連接MySQL8.0 JDBC的詳細(xì)步驟(IDEA版本)
這篇文章主要介紹了Java連接MySQL8.0 JDBC的詳細(xì)步驟(IDEA版本),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04IDEA教程創(chuàng)建SpringBoot前后端分離項目示例圖解
在使用spring、mybatis等框架時,配置文件很復(fù)雜,有時復(fù)雜的讓人想放棄Java,使用C#。springboot出現(xiàn)這一切問題就都不是問題2021-10-10