OkHttps 請(qǐng)求結(jié)果 HttpResult

2020-04-29 09:34 更新

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

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

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

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

        
// 自動(dòng)轉(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));


如果覺(jué)得 OkHttps 好用,就去點(diǎn)個(gè) Star 吧,項(xiàng)目地址:


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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)