easy-okhttp 异步请求
异步请求不会阻塞当前线程(特别是网络慢的时候),适用于对返回结果不关心或不需要立即知晓的情况下,比如推送、通知等。
异步请求只有在执行网络请求的时候有一点区别,其他地方和同步请求配置和操作都是一样的。
String githubContent = HttpClient
.get("https://www.github.com")
.execute(new CallbackAdaptor<String>(){
@Override
public DataHandler<T> getDataHandler() {
return StringDataHandler.create();
}
@Override
public void onSuccess(T data) {
//data就是经过处理后的数据,直接在这里写自己的业务逻辑
}
});CallbackAdaptor是Callback的默认实现,一般推荐使用CallbackAdaptor,这样你只需要关注的方法。下面着重介绍Callback接口定义。Callback回调接口
Callback是回调定义接口,里面总共定义了6个函数,每个函数被调用的顺序不一样。
onBefore()第一被调用,主要在请求网络之前,这个函数有返回值,如果返回false则阻止此次请求了;postProgress()第二被调用,上传进度回调函数onError()第三被调用,当只有请求失败时才会触发;onComplete()第四被调用,当请求接口完成后触发该函数;onSuccess()第五被调用,当请求接口成功(HTTP状态码为200)则会触发该函数, 该函数会依赖另外一个函数getDataHandler(),返回一个指定的数据处理器,处理原始数据。对于数据处理器前面已经了解过了。
异步回调接口Callback总共定义了6个函数,但是一般不会关心所有函数处理情况,所以提供了CallbackAdaptor空实现类,想要关注哪个函数的执行结果,重载那个函数即可。