封装OkHttp工具类
2017-11-11 16:12
127 查看
OkHttp的返回数据在子线程,所以经常用到Handler去结合使用,使我们的代码特别多,看起来特别乱,所以我就封装了一下,使得我们使用时获得的数据在主线程中,我封装了两种形式,一种是okhttp和handler结合,一种是okhttp和Rxjava结合,希望能够帮到大家。
[b]1.
[b]okhttp和handler结合:[/b]
[/b]
以下是需要的依赖: compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.squareup.okio:okio:1.13.0'
首先说一下怎么使用吧:
2. okhttp和Rxjava结合:
加上Rxjava的依赖: compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'使用方式:
[b]1.
[b]okhttp和handler结合:[/b]
[/b]
以下是需要的依赖: compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.squareup.okio:okio:1.13.0'
首先说一下怎么使用吧:
OkHttpUtils.getInstance().doGet("http://news-at.zhihu.com/api/4/news/latest",callback);废话不多说,上工具类:
public abstract class OnUiCallback implements Callback { public abstract void onFailed(String eStr); public abstract void onSuccess(String result); private Observer observer=new Observer<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { onFailed(""); } @Override public void onNext(String o) { onSuccess(o); } }; @Override public void onFailure(Call call, IOException e) { String eStr=e.getMessage(); Observable.just(eStr).subscribe(observer); } @Override public void onResponse(Call call, Response response) throws IOException { String result=response.body().string(); Observable.just(result).observeOn(AndroidSchedulers.mainThread()).subscribe(observer); } }
public class OkHttpUtils { private static OkHttpUtils okHttpUtils=new OkHttpUtils(); private OkHttpUtils(){}; public static OkHttpUtils getInstance(){ return okHttpUtils; } private OkHttpClient client; private void initOkHttpClient(){ if (client==null){ client=new OkHttpClient.Builder().build(); } } public void doGet(String path, Callback callback){ initOkHttpClient(); Request request=new Request.Builder().url(path).build(); client.newCall(request).enqueue(callback); } }
2. okhttp和Rxjava结合:
加上Rxjava的依赖: compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'使用方式:
OkHttpUtils.getInstance().doGet("", new OnUiCallback() { @Override public void onFailed(String eStr) { //失败 } @Override public void onSuccess(String result) { //成功 } });
public class OkHttpUtils { private static OkHttpUtils okHttpUtils=new OkHttpUtils(); private OkHttpUtils(){}; public static OkHttpUtils getInstance(){ return okHttpUtils; } private OkHttpClient client; private void initOkHttpClient(){ if (client==null){ client=new OkHttpClient.Builder().build(); } } public void doGet(String path, Callback callback){ initOkHttpClient(); Request request=new Request.Builder().url(path).build(); client.newCall(request).enqueue(callback); } }
public abstract class OnUiCallback implements Callback { public abstract void onFailed(String eStr); public abstract void onSuccess(String result); private Observer observer=new Observer<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { onFailed(""); } @Override public void onNext(String o) { onSuccess(o); } }; @Override public void onFailure(Call call, IOException e) { String eStr=e.getMessage(); Observable.just(eStr).subscribe(observer); } @Override public void onResponse(Call call, Response response) throws IOException { String result=response.body().string(); Observable.just(result).observeOn(AndroidSchedulers.mainThread()).subscribe(observer); } }
相关文章推荐
- 封装OkHttp工具类
- Okhttp工具类封装
- 以OKHttp为基础封装网络请求工具类
- okhttp封装工具类
- Android OkHttp网络连接封装工具类
- 网络请求工具类之OkHttp3封装(二)上(支持请求取消、异步请求的线程切换)
- OkHttp网络连接封装工具类
- 网络请求工具类之OkHttp3封装(二)下(支持请求取消、异步请求的线程切换)
- OKHTTP带公共参数封装在方法中的工具类
- 基于鸿洋okhttp封装工具类okhttputils 返回数据回调封装
- 非常简单的OKhttp封装工具类
- 简单的封装了一个OKHttp网络请求工具类,直接粘贴进去调用使用,很方便
- 自己简单的封装一个OKHttp工具类
- OkHttp网络连接封装工具类以及json转换类
- OKhttp封装的工具类 可以拷到自己项目中直接用
- Android Okhttp工具类的封装
- 仿京东APP分类页面(mvp模式+OkHttp封装工具类+拦截器+弱引用回收)
- okhttp传输封装的工具类
- Okhttp封装工具类
- OkHttp网络连接封装工具类