最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

RestTemplate的DELETE及PUT等請求方法使用精講

 更新時間:2022年03月17日 10:17:16   作者:字母哥哥  
這篇文章主要為大家介紹了RestTemplate的DELETE及PUT等請求方法的使用精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

本文是精講RestTemplate第5篇,前篇的blog訪問地址如下:

RestTemplate在Spring或非Spring環(huán)境下使用精講

RestTemplate實(shí)現(xiàn)多種底層HTTP客戶端類庫的切換用法

RestTemplate發(fā)送HTTP GET請求使用方法詳解

RestTemplate發(fā)送HTTP POST請求使用方法詳解

為了方便后續(xù)開發(fā)測試,首先介紹一個網(wǎng)站給大家。JSONPlaceholder是一個提供免費(fèi)的在線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)文章

  • java  interface 接口的使用好處分析

    java interface 接口的使用好處分析

    這篇文章主要介紹了java interface 接口的使用好處,結(jié)合實(shí)例形式分析了java interface接口的功能、基本使用方法及多態(tài)性的使用優(yōu)點(diǎn),需要的朋友可以參考下
    2019-11-11
  • springboot使用redis實(shí)現(xiàn)從配置到實(shí)戰(zhàn)

    springboot使用redis實(shí)現(xiàn)從配置到實(shí)戰(zhàn)

    本文主要介紹了springboot使用redis ,采用的是RedisTemplate的形式,還有一種采用spring支持的注解進(jìn)行訪問緩存,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解SpringMVC攔截器配置及使用方法

    詳解SpringMVC攔截器配置及使用方法

    本篇文章主要介紹了SpringMVC攔截器配置及使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    這篇文章主要介紹了Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解spring boot jpa整合QueryDSL來簡化復(fù)雜操作

    詳解spring boot jpa整合QueryDSL來簡化復(fù)雜操作

    這篇文章主要介紹了詳解spring boot jpa整合QueryDSL來簡化復(fù)雜操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Java實(shí)現(xiàn)上傳Excel文件并導(dǎo)入數(shù)據(jù)庫

    Java實(shí)現(xiàn)上傳Excel文件并導(dǎo)入數(shù)據(jù)庫

    這篇文章主要介紹了在java的基礎(chǔ)上學(xué)習(xí)上傳Excel文件并導(dǎo)出到數(shù)據(jù)庫,感興趣的小伙伴不要錯過奧
    2021-09-09
  • Java編程之多線程死鎖與線程間通信簡單實(shí)現(xiàn)代碼

    Java編程之多線程死鎖與線程間通信簡單實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java編程之多線程死鎖與線程間通信簡單實(shí)現(xiàn)代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • 了解Java線程池執(zhí)行原理

    了解Java線程池執(zhí)行原理

    那么有沒有一種辦法使得線程可以復(fù)用,就是執(zhí)行完一個任務(wù),并不被銷毀,而是可以繼續(xù)執(zhí)行其他的任務(wù)?在Java中可以通過線程池來達(dá)到這樣的效果。下面我們來詳細(xì)了解一下吧
    2019-05-05
  • Spring?自定義propertyEditor的示例代碼

    Spring?自定義propertyEditor的示例代碼

    這篇文章主要介紹了Spring?自定義propertyEditor的示例代碼,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Java實(shí)現(xiàn)單鏈表SingleLinkedList增刪改查及反轉(zhuǎn) 逆序等

    Java實(shí)現(xiàn)單鏈表SingleLinkedList增刪改查及反轉(zhuǎn) 逆序等

    單鏈表是鏈表的其中一種基本結(jié)構(gòu)。一個最簡單的結(jié)點(diǎn)結(jié)構(gòu)如圖所示,它是構(gòu)成單鏈表的基本結(jié)點(diǎn)結(jié)構(gòu)。在結(jié)點(diǎn)中數(shù)據(jù)域用來存儲數(shù)據(jù)元素,指針域用于指向下一個具有相同結(jié)構(gòu)的結(jié)點(diǎn)。 因為只有一個指針結(jié)點(diǎn),稱為單鏈表
    2021-10-10

最新評論

常熟市| 克东县| 乌审旗| 龙川县| 同德县| 稷山县| 望奎县| 开化县| 湖南省| 凌云县| 临澧县| 剑川县| 丰原市| 晋州市| 高密市| 富裕县| 神木县| 本溪| 海林市| 招远市| 蒲城县| 万源市| 屏南县| 土默特右旗| 星子县| 安新县| 平凉市| 七台河市| 焉耆| 巴彦县| 连平县| 怀来县| 莒南县| 延寿县| 永靖县| 溧水县| 介休市| 鹿邑县| 怀柔区| 垫江县| 巩留县|