OkHttps 請求結(jié)果 HttpResult

2020-04-29 09:34 更新

  HttpResult是HTTP請求執(zhí)行完后的結(jié)果,它是同步請求方法( get、postput、delete)的返回值,也是異步請求響應(yīng)回調(diào)(OnResponse)的參數(shù),它定義了如下方法:

  • getState() 得到請求執(zhí)行狀態(tài)枚舉,它有以下取值:
    • State.CANCELED 請求被取消
    • State.RESPONSED 已收到響應(yīng)
    • State.TIMEOUT 請求超時
    • State.NETWORK_ERROR 網(wǎng)絡(luò)錯誤
    • State.EXCEPTION 其它請求異常
  • getStatus() 得到HTTP狀態(tài)碼
  • isSuccessful() 是否響應(yīng)成功,狀態(tài)碼在 [200..300) 之間
  • getHeaders() 得到HTTP響應(yīng)頭
  • getHeaders(String name) 得到HTTP響應(yīng)頭
  • getHeader(String name) 得到HTTP響應(yīng)頭
  • getBody() 得到響應(yīng)報文體Body實例,它定義了如下方法(對同一個Body實例,以下的toXXX()類方法只能使用一個且僅能調(diào)用一次):
    • toBytes() 返回字節(jié)數(shù)組
    • toByteStream() 返回字節(jié)輸入流
    • toCharStream() 返回字符輸入流
    • toString() 返回字符串
    • toJsonObject() 返回Json對象
    • toJsonArray() 返回Json數(shù)組
    • toBean(Class<T> type) 返回根據(jù)type自動json解析后的JavaBean
    • toList(Class<T> type) 返回根據(jù)type自動json解析后的JavaBean列表
    • toFile(String filePath) 下載到指定路徑
    • toFile(File file) 下載到指定文件
    • toFolder(String dirPath) 下載到指定目錄
    • toFolder(File dir) 下載到指定目錄
    • getContentType() 返回報文體的媒體類型
    • getContentLength() 返回報文體的字節(jié)長度
    • cache() 緩存報文體,開啟緩存后可重復(fù)使用toXXX()類方法
    • close() 關(guān)閉報文體,未對報文體做任何消費時使用,比如只讀取報文頭
  • getError() 執(zhí)行中發(fā)生的異常,自動捕獲執(zhí)行請求是發(fā)生的 網(wǎng)絡(luò)超時、網(wǎng)絡(luò)錯誤 和 其它請求異常
  • close() 關(guān)閉報文,未對報文體做任何消費時使用,比如只讀取長度

  示例,請求結(jié)果自動轉(zhuǎn)Bean和List:

// 自動轉(zhuǎn)Bean
Order order = http.sync("/orders/1")
        .get().getBody().toBean(Order.class);

        
// 自動轉(zhuǎn)List
List<Order> orders = http.sync("/orders")
        .get().getBody().toList(Order.class);

  示例,使用 cache:

Body body = http.sync("/orders").get().getBody().cache();


// 使用 cache 后,可以多次使用 toXXX() 方法


System.out.println(body.toString());
System.out.println(body.toJsonArray());
System.out.println(body.toList(Order.class));


如果覺得 OkHttps 好用,就去點個 Star 吧,項目地址:


官方網(wǎng)站:http://okhttps.ejlchina.com/

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號