接上篇同步请求分析,首先我们先看简单的异步请求的使用方法。
1. 异步请求使用
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://baidu.com")
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
}
});
从上面的代码来看,和同步请求不同的部分就是最后是执行的call的enqueue方法,传入的是一个callback对象,用于回调请求的结果。
2. enqueue方法分析
我们还是进入Call的实现类RealCall来看enqueue的具体实现
@Override public void enqueue(Callback responseCallback) {
synchronized (this) {
if (executed) throw new IllegalStateException("Already Executed");
executed