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