OkHttps 简单示例
构建 HTTP
HTTP http = HTTP.builder().build();
以上代码构建了一个最简单的HTTP实例,它拥有以下三个方法:
async(String url)开始一个异步请求 (内部通过一个HTTP单例实现)async()开始一个异步HTTP任务,使用该方法必须在构建时设置 BaseUrlsync(String url)开始一个同步请求 (内部通过一个HTTP单例实现)sync()开始一个同步HTTP任务,使用该方法必须在构建时设置 BaseUrlcancel(String tag)按标签取消请求(内部通过一个HTTP单例实现)cancelAll()取消所有HTTP任务,包括同步和异步(内部通过一个HTTP单例实现)request(Request request)OkHttp 原生请求 (该请求不经过 预处理器)webSocket(Request request, WebSocketListener listener)WebSocket通讯
为了使用方便,在构建的时候,我们更愿意指定一个BaseUrl(请参见5.1 设置 BaseUrl):
HTTP http = HTTP.builder()
.baseUrl("http://api.demo.com")
.build();
为了简化文档,下文中出现的http均是在构建时设置了BaseUrl的HTTP实例。
同步请求
使用方法sync(String url)开始一个同步请求:
List<User> users = http.sync("/users") // http://api.demo.com/users
.get() // GET请求
.getBody() // 获取响应报文体
.toList(User.class); // 得到目标数据
方法sync返回一个同步HttpTask,可链式使用。
异步请求
使用方法async(String url)开始一个异步请求:
http.async("/users/1") // http://api.demo.com/users/1
.setOnResponse((HttpResult result) -> {
// 得到目标数据
User user = result.getBody().toBean(User.class);
})
.get(); // GET请求
方法async返回一个异步HttpTask,可链式使用。