溫馨提示×

溫馨提示×

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

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

Forest v1.5.3正式版本中新增了哪些功能

發(fā)布時間:2021-09-26 09:19:02 來源:億速云 閱讀:125 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)Forest v1.5.3正式版本中新增了哪些功能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

v1.5.3 本版發(fā)布了,本次版本更新新增了較多功能,其中有許多重大更新。

1. 新增Forest快捷接口

以前版本使用 Forest,必須先定義一個 interface 接口類,這種形式可以滿足大多數(shù)情況的場景。 但若想快速訪問一個url可能顯得不合時宜。 所以本次更新新增了快捷接口,不用再從定義接口開始了。

它大概長這個樣子:

// Get請求
// 并以 String 類型接受數(shù)據(jù)
String str = Forest.get("/").executeAsString();
 
// Post請求
// 并以自定義的 MyResult 類型接受
MyResult myResult = Forest
   .post("/")
   .execute(MyResult.class);
 
// 通過 TypeRefernce 引用類傳遞泛型參數(shù)
// 就可以將響應數(shù)據(jù)以帶復雜泛型參數(shù)的類型接受了
Result<List<User>> userList = Forest
   .post("/")
   .execute(new TypeReferenceList<Result<List<User>>>() {});
 
 
// 定義各種參數(shù)
// 并以 Map 類型接受
Map<String, Object> map = Forest.post("/")
      .backend("okhttp3")        // 設置后端為 okhttp3
      .contentTypeJson()         // 設置 Content-Type 頭為 application/json
      .host("127.0.0.1")         // 設置地址的host為 127.0.0.1
      .port(8080)                // 設置地址的端口為 8080
      .addBody("a", 1)           // 添加 Body 項(鍵值對): a, 1
      .addBody("b", 2)           // 添加 Body 項(鍵值對:  b, 2
      .maxRetryCount(3)          // 設置請求最大重試次數(shù)為 3
      // 設置 onSuccess 回調(diào)函數(shù)
      .onSuccess((data, req, res) -> { log.info("success!"); })
      // 設置 onError 回調(diào)函數(shù)
      .onError((ex, req, res) -> { log.info("error!"); })
      // 設置請求成功判斷條件回調(diào)函數(shù)
      .successWhen((req, res) -> res.noException() && res.statusOk())
      // 執(zhí)行并返回Map數(shù)據(jù)類型對象
      .executeAsMap();

 2. 請求成功條件/重試條件

@Success 注解

先要定義 SuccessWhen 接口的實現(xiàn)類

public class TestSuccessWhen implements SuccessWhen {
 
    /**
     * 請求成功條件
     * @param req Forest請求對象
     * @param res Forest響應對象
     * @return 是否成功
     */
    @Override
    public boolean successWhen(ForestRequest req, ForestResponse res) {
        // 沒有異常 并且 狀態(tài)碼在正常范圍 并且 狀態(tài)碼不等于203
        // 當然在這里也可以寫其它條件,比如 通過 res.getData() 或 res.getConent() 獲取業(yè)務數(shù)據(jù)
        // 再更具業(yè)務數(shù)據(jù)判斷是否成功
        return res.noException() && res.statusOk() && res.statusCode() != 203;
    }
}

以上就是Forest v1.5.3正式版本中新增了哪些功能,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI