亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

POST、DELETE、PUT方法該如何使用

發布時間:2022-01-04 17:28:21 來源:億速云 閱讀:199 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關POST、DELETE、PUT方法該如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、RESTful風格與HTTP method

熟悉RESTful風格的朋友,應該了解RESTful風格API使用HTTP method表達對資源的操作。

常用HTTP方法RESTful風格語義(操作)
GET查詢、獲取數據
POST新增、提交數據
DELETE刪除數據
PUT更新、修改數據

在上一篇文章中我們已經為大家介紹了如何使用WebClient作為Http客戶端發送GET請求與進行響應結果的接收。本節來為大家介紹POST、DELETE、PUT。

POST等其他的方法在與GET方法在使用如下方法的時候是一致的:

  • block()阻塞獲取響應結果的方法,subscribe()非阻塞異步結果訂閱方法

  • retrieve()獲取HTTP響應體,exchange()除了獲取HTTP響應體,還可以獲取HTTP 狀態碼、headers、cookies等HTTP報文信息。

  • 使用Mono接收單個對象的響應結果,使用Flux接收集合類對象的響應結果。

  • 占位符語法傳參方式

所以想了解以上信息,請去參考: 精講響應式WebClient第2篇-GET請求阻塞與非阻塞調用方法詳解。 本文只介紹POST、DELETE、PUT在使用過程中與GET不一樣的地方。

為了方便后續開發測試,首先介紹一個網站給大家。JSONPlaceholder是一個提供免費的在線REST API的網站,我們在開發時可以使用它提供的url地址測試下網絡請求以及請求參數。或者當我們程序需要獲取一些模擬數據、模擬圖片時也可以使用它。

二、Post請求發送JSON字符串、對象、表單數據

2.1.使用Post方法向服務端發送JSON字符串數據

public class OtherTest {

  //創建webClient
  private WebClient webClient = WebClient.builder()
          .baseUrl("http://jsonplaceholder.typicode.com")
          .build();


  [@Test](https://my.oschina.net/azibug)
  public void testPostJsonStr() {
    // 提交給服務端的JSON字符串
    String jsonStr = "{\"userId\": 1,\"title\": \"zimugtest\",\"body\": \"字母哥進行測試\"}";

    // 發送請求
    Mono<String> mono = webClient
            .post() // POST 請求
            .uri("/posts")  // 請求路徑
            .contentType(MediaType.APPLICATION_JSON)  //JSON數據類型
            .body(BodyInserters.fromValue(jsonStr))  //JSON字符串數據
            .retrieve() // 獲取響應體
            .bodyToMono(String.class); //響應數據類型轉換

    // 輸出結果
    System.out.println(mono.block());
  }

}

響應結果打印如下,"http://jsonplaceholder.typicode.com/posts/1" 服務的請求數據就是響應數據。響應結果同樣是一個JSON字符串:

POST、DELETE、PUT方法該如何使用

2.2.將對象以JSON數據形式發送服務端

  [@Test](https://my.oschina.net/azibug)
  public void testPostJson() {
    //構建請求發送對象
    PostDTO postDTO = new PostDTO();
    postDTO.setUserId(110);
    postDTO.setTitle("zimug-test");
    postDTO.setBody("字母哥進行Post測試");

    //發送請求
    Mono<PostDTO> mono = webClient
            .post() // 發送POST 請求
            .uri("/posts")  //服務請求路徑,基于baseurl
            .contentType(MediaType.APPLICATION_JSON)  //以JSON數據格式
            .bodyValue(postDTO)   //發送請求體,對象形式
            .retrieve() // 獲取響應體
            .bodyToMono(PostDTO.class); //響應數據類型轉換

    // 輸出結果
    System.out.println("=====" + mono.block());
  }

響應結果打印如下,使用PostDTO接收響應結果。因為 "http://jsonplaceholder.typicode.com/posts/1" 服務的請求數據就是響應數據。打印結果是PostDTO對象的toString()方法

POST、DELETE、PUT方法該如何使用

2.3.POST模擬表單數據提交

  [@Test](https://my.oschina.net/azibug)
  public void testFormSubmit()  {
    //表單數據參數設置
    MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
    map.add("title", "zimug-test");
    map.add("body", "字母哥進行測試");

    // 發送請求
    Mono<String> mono = webClient
            .post() // 發送POST 請求
            .uri("/posts")  // 請求路徑
            .contentType(MediaType.APPLICATION_FORM_URLENCODED)  //表單數據類型
            .body(BodyInserters.fromFormData(map))  //表單數據
            .retrieve() // 獲取響應體
            .bodyToMono(String.class); //響應數據類型轉換

    // 輸出結果
    System.out.println(mono.block());
  }
  
}

因為使用字符串的方式接受響應結果,所以輸出和《2.1.使用Post方法向服務端發送JSON字符串數據》輸出結果是一樣的。

三、使用 DELETE方法去刪除資源

刪除一個已經存在的資源,使用webClient的delete()方法。該方法會向URL代表的資源發送一個HTTP DELETE方法請求。

[@Test](https://my.oschina.net/azibug)
public void testDelete()  {
  // 發送Delete請求
  webClient.delete().uri("/posts/1");  // 請求路徑
}

在前面章節測試類的基礎上,寫如上代碼的測試用例。上面代碼含義為刪除posts列表里面的第1個帖子。

四、使用PUT方法去修改資源

修改一個已經存在的資源,使用webClient的put()方法。該方法會向URL代表的資源發送一個HTTP PUT方法請求。

[@Test](https://my.oschina.net/azibug)
public void testPut()  {
  //要修改的數據對象
  PostDTO postDTO = new PostDTO();
  postDTO.setId(1);
  postDTO.setBody("字母哥進行Put測試");

  Mono<PostDTO> mono = webClient
          .put()
          .uri("/posts/1")  //服務請求路徑,基于baseurl
          .contentType(MediaType.APPLICATION_JSON)
          .bodyValue(postDTO)   //發送請求體
          .retrieve() // 獲取響應體
          .bodyToMono(PostDTO.class); //響應數據類型轉換

  // 輸出結果
  System.out.println("=====" + mono.block());
}

上面代碼RESTful風格語義是:修改posts列表里面的第1個帖子。輸出結果如下,是修改數據之后的結果:

POST、DELETE、PUT方法該如何使用

上述就是小編為大家分享的POST、DELETE、PUT方法該如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴义市| 什邡市| 张家港市| 凤翔县| 贡觉县| 蓝田县| 聂荣县| 茌平县| 崇礼县| 丘北县| 东台市| 广宗县| 蒙阴县| 麦盖提县| 长汀县| 伊春市| 夏邑县| 景泰县| 泰兴市| 遂川县| 仙桃市| 哈密市| 敖汉旗| 巨野县| 南平市| 宝清县| 湖州市| 三河市| 澄迈县| 长治市| 浑源县| 昌都县| 南充市| 扬中市| 莎车县| 聂拉木县| 宜州市| 石狮市| 牡丹江市| 江川县| 穆棱市|