easy-okhttp 异步请求

2018-08-08 14:37 更新
异步请求不会阻塞当前线程(特别是网络慢的时候),适用于对返回结果不关心或不需要立即知晓的情况下,比如推送、通知等。

异步请求只有在执行网络请求的时候有一点区别,其他地方和同步请求配置和操作都是一样的。

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


Callback回调接口

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号