注:一定要在MainActivity中调用接口回调的方法 public class OKHttpUtils { //单利模式,获取对象 private static OKHttpUtils okHttpUtils = null; private MyHandler myhandler = new MyHandler(); private OkLoadListener okLoadListener; public static OKHttpUtils getInstance() { if (okHttpUtils == null) { okHttpUtils = new OKHttpUtils(); } return okHttpUtils; } //get请求 public void OkGet(String url) { //创建ok对象 OkHttpClient okHttpClient = new OkHttpClient(); //创建请求对象 //路径是单独写了一个类(存放路径:HttpConfig.goods_url) Request request = new Request.Builder().url(HttpConfig.goods_url).build(); //创建请求队列 Call call = okHttpClient.newCall(request); //执行,异步请求 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message message = myhandler.obtainMessage(); message.what = 0; message.obj = e.getMessage(); myhandler.sendMessage(message); } @Override public void onResponse(Call call, Response response) throws IOException { Message message = myhandler.obtainMessage(); message.what = 1; message.obj = response.body().string(); myhandler.sendMessage(message); } }); } //处理线程 class MyHandler extends Handler { @Override public void handleMessage(Message msg) { //处理消息 switch (msg.what) { //失败 case 0: String error = (String) msg.obj; okLoadListener.LoadError(error); break; //成功 case 1: String json = (String) msg.obj; okLoadListener.LoadSuccess(json); break; } } } //接口回调 // 《1》定义接口 public interface OkLoadListener { void LoadSuccess(String json); void LoadError(String error); } // 《2》定义一个方法,共外部调用 public void setLoadListener(OkLoadListener okLoadListener) { this.okLoadListener = okLoadListener; } }
OKHttpClient封装
最新推荐文章于 2024-06-23 02:01:21 发布
