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
空实现类,想要关注哪个函数的执行结果,重载那个函数即可。