OkHttps 请求结果 HttpResult
HttpResult是HTTP请求执行完后的结果,它是同步请求方法( get、post、put、delete)的返回值,也是异步请求响应回调(OnResponse)的参数,它定义了如下方法:
getState()得到请求执行状态枚举,它有以下取值:State.CANCELED请求被取消State.RESPONSED已收到响应State.TIMEOUT请求超时State.NETWORK_ERROR网络错误State.EXCEPTION其它请求异常
getStatus()得到HTTP状态码isSuccessful()是否响应成功,状态码在 [200..300) 之间getHeaders()得到HTTP响应头getHeaders(String name)得到HTTP响应头getHeader(String name)得到HTTP响应头getBody()得到响应报文体Body实例,它定义了如下方法(对同一个Body实例,以下的toXXX()类方法只能使用一个且仅能调用一次):toBytes()返回字节数组toByteStream()返回字节输入流toCharStream()返回字符输入流toString()返回字符串toJsonObject()返回Json对象toJsonArray()返回Json数组toBean(Class<T> type)返回根据type自动json解析后的JavaBeantoList(Class<T> type)返回根据type自动json解析后的JavaBean列表toFile(String filePath)下载到指定路径toFile(File file)下载到指定文件toFolder(String dirPath)下载到指定目录toFolder(File dir)下载到指定目录getContentType()返回报文体的媒体类型getContentLength()返回报文体的字节长度cache()缓存报文体,开启缓存后可重复使用toXXX()类方法close()关闭报文体,未对报文体做任何消费时使用,比如只读取报文头
getError()执行中发生的异常,自动捕获执行请求是发生的 网络超时、网络错误 和 其它请求异常close()关闭报文,未对报文体做任何消费时使用,比如只读取长度
示例,请求结果自动转Bean和List:
// 自动转Bean
Order order = http.sync("/orders/1")
.get().getBody().toBean(Order.class);
// 自动转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 吧,项目地址: