OkHttps 简单示例
2020-07-22 15:15 更新
构建 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
,可链式使用。
以上内容是否对您有帮助:
更多建议: