HttpResult
是HTTP請求執(zhí)行完后的結(jié)果,它是同步請求方法( get
、post
、put
、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解析后的JavaBeantoList(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 吧,項目地址:
更多建議: